如何更改PDF中的查看器首选项[关闭]

问题描述 投票:1回答:2

The PDF standard声明应该可以在PDF中设置“查看者首选项”,这允许您预设用户将如何查看文档。

有没有可用于执行此操作的免费命令行工具或完全开源的库(因此不受限制/许可的库,如iText)?我发现的只是BeCyPDFMetaEdit,这是一个Windows工具。

pdf pdf-generation
2个回答
2
投票

以下是使用PDF::API2 Perl软件包(免费)的方法:

use PDF::API2;

$pdf = PDF::API2->open("old.pdf");

$pdf->preferences(
        -centerwindow => 1,
        -fitwindow => 1,
        -hidetoolbar => 1,
        -hidemenubar => 1,
        );

$pdf->saveas('new.pdf');

2
投票

我认为你没有得到这个问题的答案,因为在FAQ on StackOverflow的背景下,这不是一个真正的问题。关于SO的问题应该是关于你在尝试某些事情时遇到的技术问题。问“你能给我一个样品吗?”并不总是被接受。你冒着反问的风险:“你有什么尝试?”

这就是说,回应你的评论:“当然这肯定已经做过了吗?”:当然,它有!我没有立即回答,因为我没有时间,也因为你的问题的答案是明智的。我以为你自己找到答案没有任何问题。

PdfReader reader = new PdfReader("test.pdf");
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("test_changed.pdf"));
stamper.setViewerPreferences(PdfWriter.CenterWindow | PdfWriter.FitWindow);
stamper.addViewerPreference(PdfName.PRINTSCALING, PdfName.NONE);
stamper.addViewerPreference(PdfName.NUMCOPIES, new PdfNumber(3));
stamper.close();
reader.close();

您使用PdfReader获取现有PDF,然后使用PdfStamper将其复制到更改的PDF。在中间你可以使用setViewerPreferences()方法或addViewerPreference()方法。如果您按照这些方法提供的链接,您将获得可能的查看者首选项的概述。

这是一个iText(Java)示例;将其更改为iTextSharp(C#)示例是将一些较小的案例更改为大写的问题。

免责声明:我是iText Software的首席执行官。我也是iText的原始开发者和“iText in Action”书籍的作者。

© www.soinside.com 2019 - 2024. All rights reserved.