java - 将 pdf 与 itext 结合 - 横向页面呈现为纵向

标签 java itext

我正在维护一个使用 itext 组合多个横向和纵向 pdf 的遗留应用程序。当将同一应用程序生成的 pdf 与其他 pdf 组合时,此过程工作正常,它将风景呈现为肖像并切断内容。

问题:pdf 的结构中是否有属性会导致这种渲染差异?

谢谢!

最佳答案

您所描述的行为只有在您效仿坏榜样时才会发生。当你关注 the official documentation 时不会发生.

虽然您没有提供任何源代码,但我很确定您使用的是 PdfWriter 实例,并且您使用 addTemplate 将现有页面添加到该实例的直接内容中() 方法。这是错误的(正如我多次向不阅读文档的人指出的那样)。

您需要替换合并过程并使用PdfCopyPdfSmartCopy 来拼接PDF 文档。看看 MergeForms (合并表格)和 FillFlattenMerge2 (引入 PdfSmartCopy 以便生成的文件大小保持较低)示例以获取灵感。如果您的应用程序真的很旧,您可能找不到 addDocument() 方法。

在这种情况下,您需要使用旧示例,例如 Concatenate示例:

Document document = new Document();
PdfCopy copy = new PdfCopy(document, new FileOutputStream(RESULT));
document.open();
PdfReader reader;
int n;
for (int i = 0; i < files.length; i++) {
    reader = new PdfReader(files[i]);
    n = reader.getNumberOfPages();
    for (int page = 0; page < n; ) {
        copy.addPage(copy.getImportedPage(reader, ++page));
    }
    copy.freeReader(reader);
    reader.close();
}
document.close();

关于java - 将 pdf 与 itext 结合 - 横向页面呈现为纵向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24354023/

相关文章:

java - 如何让JComboBox中的内容居中显示?

itext - HTML 到 iTextSharp 行高转换

pdf - 文本pdf : text and color in rectangle

c# - 单元格数据的 IText 背景颜色

java - 通过传递 Activity 实例化自定义适配器

java - 将具有依赖项的 Java 库打包到 OSGi/Eclipse jar 中

java - PreparedStatement,使用一个参数多个 "?"

java - 配置 Spring Batch 而不保留元数据

c# - 无法加载文件或程序集 itextsharp

c# - iTextPdf 如何分页