创建具有默认“缩放到页面级别”的 PDF 文件 (pdfbox)

Posted

技术标签:

【中文标题】创建具有默认“缩放到页面级别”的 PDF 文件 (pdfbox)【英文标题】:Create PDF file with default "zoom to page level" (pdfbox) 【发布时间】:2016-06-07 18:44:27 【问题描述】:

我使用 pdfbox 2.0 创建了一个 PDF 文件。当我在 Adob​​e 阅读器(Windows)中打开这个 pdf 文件时,默认情况下它以缩放 fit width 打开。

我需要用默认zoom to page level打开的pdf文件。

我的尝试: 将缩放级别设置为 100。

PDPageXYZDestination dest = new PDPageXYZDestination();    
dest.setPage(pagea);    
dest.setZoom(1);    
dest.setTop(new Float(PDRectangle.A4.getHeight()).intValue());    
PDActionGoTo action = new PDActionGoTo();    
action.setDestination(dest);    
document.getDocumentCatalog().setOpenAction(action); 

【问题讨论】:

PDPageFitDestination dest = new PDPageFitDestination(); 这将有助于将整个页面放在窗口中。我不确定 PDF 规范是否支持“缩放到页面级别”,我什至不明白它的含义。显然它显示了一整页和更多内容。 @TilmanHausherr 在“缩放到页面级别”pdf 页面根据 Windows 分辨率管理缩放。一次显示一整页... 那么请尝试我评论中的代码行,并判断它是否满足您的需求......它替换了您代码的前 4 行。 它正在工作...谢谢... 【参考方案1】:

使用 PDPageFitDestination 而不是 PDPageXYZDestination - 所以你的代码现在看起来像这样:

PDPageFitDestination dest = new PDPageFitDestination();
PDActionGoTo action = new PDActionGoTo();    
action.setDestination(dest);    
document.getDocumentCatalog().setOpenAction(action);

【讨论】:

以上是关于创建具有默认“缩放到页面级别”的 PDF 文件 (pdfbox)的主要内容,如果未能解决你的问题,请参考以下文章

如何打印下载的PDF格式的电子书

Power Query - 当文件具有不同页面时从 PDF 中获取数据

PHP:预先填写 PDF 文件的字段并将其保存为默认值

从具有不同布局的 PDF 文件中提取文本信息 - 机器学习

从其他 PDF 创建多页 PDF

UIMarkupTextPrintFormatter 创建具有自定义背景和透明 HTML 内容的 PDF