gpt4 book ai didi

java - 如何使用 iText 5 将 csv 文件附加到 Java 中新创建的 PDF?

转载 作者:行者123 更新时间:2023-12-02 00:50:40 26 4
gpt4 key购买 nike

在阅读了几天的网页和帖子后,我仍然对如何向使用 Java 中的“iText 5.3.1”创建的 PDF 文件添加“csv”文件附件感到困惑。

在我继承的 Java 可执行文件中,创建了多个 PDF 文件,然后将其连接在一起形成一个 PDF 文件。现在,需要将“csv”文件附加到这个 PDF 文档中。 “iText in Action”一书的第 16 章( list 16.6)中的一个示例,使用 PdfFileSpecification 类和 fileEmbedded 方法附加“xml”文件。

PdfFileSpecification fs = PdfFileSpecification. fileEmbedded(writer, null, “Kubrick.xml”, txt.toByteArray());writer.addFileAttachment(fs);

我理解“fileEmbedded”的参数,除了作者没有在代码片段中定义的“writer”参数。

问题是,使用“PdfFileSpecification”类如何声明“writer”以便将“csv”文件附加到已创建的 PDF 文件中,或者是否有更好的方法?

这是将多个 PDF 文件连接在一起的代码部分,现在需要附加“csv”文件,我认为这是“文档级”附件。

尝试使用“PdfFileSpecification”类和“fileEmbedded”方法。不知道如何正确定义参数以将 csv 文件附加到新创建的 PDF。特别是“writer”参数。

aPDFFiles = (String[])vFileList.toArray(aPDFFiles);

Document document = new Document();

PdfCopy copy = new PdfCopy(document, new FileOutputStream(sFinalFile));

document.open();

PdfReader reader;
int n;

// loop over the documents you want to concatenate
for (int i = 0; i < aPDFFiles.length; i++) {

reader = new PdfReader(aPDFFiles[i]);

// loop over the pages in that document
n = reader.getNumberOfPages();

for (int page = 0; page < n; ) {
copy.addPage(copy.getImportedPage(reader, ++page));
}

copy.freeReader(reader);

document.close();

// Add a “csv” file(s) as an attachment?

PdfFileSpecification fs = PdfFileSpecification.fileEmbedded(writer,
sMainDir + "TestAttachment.csv", "TestAttachment.csv", null);

最佳答案

在这个例子中事实证明非常简单。我有最终“pdf”文件的“PdfCopy”对象(将多个 PDF 文件连接成一个),并且“PdfCopy”类有一个“addFileAttachment”方法来执行此操作。

copy.addFileAttachment("TestAttachment.csv", null, sMainDir + “TestAttachment.csv”,“TestAttachment.csv”);

关于java - 如何使用 iText 5 将 csv 文件附加到 Java 中新创建的 PDF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57861433/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com