当前位置: 首页 > 知识库问答 >
问题:

如何使用PdfBox创建pdf包?

隆兴修
2023-03-14

我正在迁移一些代码(最初使用iText)来使用PdfBox进行PDF合并。除了创建PDF包或文件夹,一切都很好。我不得不承认,直到现在我才意识到它的存在。

这是我的代码片段(使用iText):

PdfStamper stamper = new PdfStamper(reader, out);
stamper.makePackage(PdfName.T);
stamper.close();

我需要这个,但与PdfBox。

我正在研究两者的 API 和文档,但找不到解决方案。任何帮助都会很棒。

附言。如果我给人留下印象,我需要在iText中解决方案,我需要它在PdfBox中,因为迁移是从iText到PdfBox。

共有1个答案

傅朝
2023-03-14

据我所知,PDFBox不包含用于该任务的单个专用方法。另一方面,使用现有的通用PDFBox方法来实现它相当容易。

首先,任务被有效地定义为做等效于

stamper.makePackage(PdfName.T);

使用PDFBox。iText中的该方法被记录为:

/**
 * This is the most simple way to change a PDF into a
 * portable collection. Choose one of the following names:
 * <ul>
 * <li>PdfName.D (detailed view)
 * <li>PdfName.T (tiled view)
 * <li>PdfName.H (hidden)
 * </ul>
 * Pass this name as a parameter and your PDF will be
 * a portable collection with all the embedded and
 * attached files as entries.
 * @param initialView can be PdfName.D, PdfName.T or PdfName.H
 */
public void makePackage( final PdfName initialView )

因此,我们需要更改 PDF(相当少)以使其成为具有平铺视图的便携式集合。

根据ISO 32000-1的第12.3.5节“收藏”(我还没有第二部分)这意味着我们必须添加一个收藏字典到PDF目录中,其视图条目的值为t。因此:

PDDocument pdDocument = PDDocument.load(...);

COSDictionary collectionDictionary = new COSDictionary();
collectionDictionary.setName(COSName.TYPE, "Collection");
collectionDictionary.setName("View", "T");
PDDocumentCatalog catalog = pdDocument.getDocumentCatalog();
catalog.getCOSObject().setItem("Collection", collectionDictionary);

pdDocument.save(...);
 类似资料:
  • 主要内容:创建一个空的PDF文档,实例现在让我们了解如何使用PDFBox库创建PDF文档。 创建一个空的PDF文档 可以通过实例化类来创建一个空的PDF文档。使用这个类的方法将文档保存在所需的位置。 以下是创建一个空的PDF文档的步骤。 第1步: 创建空白文档 包中的类是PDF文档的内存中表示形式。 因此,通过实例化这个类,可以创建一个空的,如下面的代码块所示。 第2步: 保存文档 创建文档后,需要将此文档保存在所需的路径中,可以使用

  • 早上好 我有一个新手PDFbox的问题,我希望一些帮助... 我刚刚(上周)从github下载了最新的PDFbox源代码,正在尝试创建HelloWorldOTF。java,基于HelloWorldTTF。java示例,希望创建一个PDF文件,该文件使用OTF字体(本例中为Adobe Caslon Pro Regular)将文本添加到输出PDF中。 到目前为止,我有以下信息: 我可以使用以下代码加载

  • 问题内容: 我们计划将pdf生成实用程序从iText迁移到PDFBox(由于iText中的许可问题)。经过一些努力,我能够编写和定位文本,绘制线条等。但是创建带有嵌入在Table单元格中的文本的Tables是一个挑战,我遍历了文档,示例,Google,Stackoverflow找不到任何东西。想知道PDFBox是否提供本机支持来创建带有嵌入式文本的表格。我的最后一招是使用此链接https://gi

  • 我们计划将pdf生成实用程序从iText迁移到PDFBox(由于iText中的许可问题)。通过一些努力,我能够书写和定位文本、绘制线条等。但创建表格时,将文本嵌入表格单元格是一项挑战,我浏览了文档、示例、Google、Stackoverflow都找不到任何东西。想知道PDFBox是否为创建带有嵌入文本的表提供本机支持。我最后的办法是使用此链接https://github.com/eduardohl

  • 问题内容: 我需要创建一个PDF,其中将包含执行状态报告,其中状态将以表格结构显示。是否可以使用PDFBOX API生成pdf表格式? 以下是一些用于创建新PDF文档的示例代码: 问题答案: 试试这个: 只需在函数中调用此方法

  • 这就是我想做的: > 使用pdfbox制作2个不同的pdf文件 使用pdfmerger将这两个文件合并在一起 如果要将#1保存到服务器端本地硬盘并加载#2的文件,我知道如何执行此操作。但我想做的是使用“直接从内存”。我已经搜索了这个pdfboxes中的所有方法,但仍然找不到它。 这是我从本地文件获取的代码 谢谢你。