首页>>帮助中心>>如何解决香港VPS上Java的PDFStamper的常见问题

如何解决香港VPS上Java的PDFStamper的常见问题

2024/9/4 113次
香港VPS上Java PDFStamper 是一个用于处理 PDF 文档的库,但它已经被废弃,现在推荐使用 iText 或 Apache PDFBox 等其他库。这里我将为您提供一些关于使用 iText 库的建议来解决常见问题。

添加 iText 依赖项: 对于 Maven 项目,请在 pom.xml 文件中添加以下依赖项:
复制代码
com.itextpdf itext7-core 7.1.16 ```
对于 Gradle 项目,请在 build.gradle 文件中添加以下依赖项:

implementation 'com.itextpdf:itext7-core:7.1.16'
复制代码
合并 PDF 文件:
import com.itextpdf.kernel.pdf.*;

public void mergePdfFiles(List<String> inputFiles, String outputFile) {
PdfWriter writer = new PdfWriter(outputFile);
PdfDocument pdfDocument = new PdfDocument(writer);
for (String inputFile : inputFiles) {
PdfReader reader = new PdfReader(inputFile);
PdfDocument sourceDocument = new PdfDocument(reader);
sourceDocument.copyPagesTo(1, sourceDocument.getNumberOfPages(), pdfDocument);
sourceDocument.close();
}
pdfDocument.close();
}
复制代码
分割 PDF 文件:
import com.itextpdf.kernel.pdf.*;

public void splitPdfFile(String inputFile, String outputPath, int startPage, int endPage) {
PdfReader reader = new PdfReader(inputFile);
PdfDocument pdfDocument = new PdfDocument(reader);
int numberOfPages = pdfDocument.getNumberOfPages();
for (int i = startPage; i <= endPage && i <= numberOfPages; i++) {
PdfWriter writer = new PdfWriter(outputPath + "/page_" + i + ".pdf");
PdfDocument splitDocument = new PdfDocument(writer);
pdfDocument.copyPagesTo(i, i, splitDocument);
splitDocument.close();
}
pdfDocument.close();
}
复制代码
添加水印:
import com.itextpdf.kernel.pdf.*;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.property.TextAlignment;

public void addWatermark(String inputFile, String outputFile, String watermarkText) {
PdfReader reader = new PdfReader(inputFile);
PdfWriter writer = new PdfWriter(outputFile);
PdfDocument pdfDocument = new PdfDocument(reader, writer);
Document document = new Document(pdfDocument);
for (int i = 1; i <= pdfDocument.getNumberOfPages(); i++) {
Paragraph watermark = new Paragraph(watermarkText)
.setFontSize(48)
.setFontColor(ColorConstants.RED)
.setTextAlignment(TextAlignment.CENTER);
document.showTextAligned(watermark, 297.5f, 421, i, TextAlignment.CENTER, VerticalAlignment.MIDDLE, 45);
}
document.close();
}
复制代码
添加页眉和页脚:
import com.itextpdf.kernel.pdf.*;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.property.TextAlignment;

public void addHeaderAndFooter(String inputFile, String outputFile, String headerText, String footerText) {
PdfReader reader = new PdfReader(inputFile);
PdfWriter writer = new PdfWriter(outputFile);
PdfDocument pdfDocument = new PdfDocument(reader, writer);
Document document = new Document(pdfDocument);
for (int i = 1; i <= pdfDocument.getNumberOfPages(); i++) {
// Add header
Paragraph header = new Paragraph(headerText)
.setFontSize(12)
.setTextAlignment(TextAlignment.CENTER);
document.showTextAligned(header, 297.5f, 806, i, TextAlignment.CENTER, VerticalAlignment.MIDDLE, 0);
// Add footer
Paragraph footer = new Paragraph(footerText + " | Page " + i)
.setFontSize(12)
.setTextAlignment(TextAlignment.CENTER);
document.showTextAligned(footer, 297.5f, 55, i, TextAlignment.CENTER, VerticalAlignment.MIDDLE, 0);
}
document.close();
}
复制代码
这些示例应该可以帮助您解决使用 Java PDFStamper 时遇到的常见问题。如果您需要更多功能,请查看 iText 官方文档:https://itextpdf.com/en/resources/documentation

购买使用一诺网络香港VPS,可以极大降低初创企业、中小企业以及个人开发者等用户群体的整体IT使用成本,无需亲自搭建基础设施、简化了运维和管理的日常工作量,使用户能够更专注于自身的业务发展和创新。香港VPS低至29元/月,购买链接:https://www.enuoidc.com/vps.html?typeid=2