【问题标题】:how to rotate pages into landscape and page content should be in portrait iTextpdf如何将页面旋转为横向,页面内容应为纵向 iTextpdf
【发布时间】:2018-01-11 22:54:26
【问题描述】:

我正在尝试创建一个纵向页面超过 2 页,横向页面超过 2 页的 PDF 文档,我发现页面和文本都旋转为横向我需要防止页面内容旋转。我正在使用以下代码

 Document document = new Document(PageSize.A4, 36, 36, 36, 72);
    PdfWriter writer = PdfWriter.getInstance(document, new 
    FileOutputStream(outPutDirectory + indexID + ".pdf"));
    writer.setPageEvent(new Orientation(orientation));
    document.open();
    XMLWorkerHelper.getInstance().parseXHtml(writer,document, new ByteArrayInputStream(parserXHtml(page.getPageContent()).getBytes()))
    document.close();

我的预期结果应该是这样的

【问题讨论】:

    标签: itext xmlworker


    【解决方案1】:

    您必须更改页面大小,而不是使用页面事件。

    例如:

    Document document = new Document(PageSize.A4);
    PdfWriter writer = PdfWriter.getInstance(document, new 
    FileOutputStream(outPutDirectory + indexID + ".pdf"));
    document.open();
    // Add some content in portrait
    document.setPageSize(PageSize.A4.rotate());
    document.newPage();
    // Add some content in landscape
    document.close();
    

    请注意页面大小仅在下一页发生变化。 setPageSize()newPage() 的顺序很重要。

    【讨论】:

    • OP 没有这么说,但他的代码似乎暗示他想使用XMLWorker 填写他的文档。可能他不确定新页面何时开始,因此会尝试使用页面事件......(我承认所有这些纯属猜测)
    • 好的,在这种情况下,他可能想引入一些自定义标签并扩展TagWorkerFactory以引入页面大小的变化。
    猜你喜欢
    • 1970-01-01
    • 2011-07-17
    • 2020-10-13
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    相关资源
    最近更新 更多