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

如何在iText 7中将方向设置为横向

卫烨
2023-03-14

我正在使用iText7和convertToPdf()方法将html转换为pdf。PDF生成正确,但横向模式不工作。

有人能告诉我如何获得风景模式吗?

import com.itextpdf.html2pdf.ConverterProperties;
import com.itextpdf.html2pdf.HtmlConverter;
import com.itextpdf.styledxmlparser.css.media.MediaDeviceDescription;
import com.itextpdf.styledxmlparser.css.media.MediaType;

import java.io.File;
import java.io.IOException;

import static com.itextpdf.html2pdf.css.CssConstants.LANDSCAPE;

public class htmlToPDF {

    public static void main(String args[]) throws IOException {

        ConverterProperties properties = new ConverterProperties();

        MediaDeviceDescription med = new MediaDeviceDescription(MediaType.ALL);
        med.setOrientation(LANDSCAPE);
        properties.setMediaDeviceDescription(med);

        HtmlConverter.convertToPdf(new File("D:\\test.html"), new File("D:\\test.pdf"),properties);
    }
}

共有2个答案

程谭三
2023-03-14

您可以使用PageOrientationsEventHandler处理文档中的方向,如-

PdfDocument pdfDoc = new PdfDocument(new PdfWriter(DEST));
PageOrientationsEventHandler eventHandler = new PageOrientationsEventHandler();
pdfDoc.addEventHandler(PdfDocumentEvent.START_PAGE, eventHandler);
Document doc = new Document(pdfDoc);
doc.add(new Paragraph("A simple page in portrait orientation"));
eventHandler.setOrientation(LANDSCAPE);

在这里更详细地检查一下。

季炯
2023-03-14

请只使用将PdfDocument作为参数的转换器方法。例如,下一个:convertToPdf(InputStream htmlStream,PdfDocument PdfDocument,ConverterProperties converterProporties)

现在,您只需要在转换html文件之前设置文档的页面大小。

    PdfDocument pdfDocument = new PdfDocument(new PdfWriter(new File(sourcePath)));
    pdfDocument.setDefaultPageSize(PageSize.A4.rotate());
    HtmlConverter.convertToPdf(new FileInputStream(destPath), pdfDocument, new ConverterProperties());
 类似资料:
  • setPrintedLandscape(): self 实例 $config = ['path' => './tests']; $excel = new \Vtiful\Kernel\Excel($config); ​ $excel->fileName('printed_landscape.xlsx', 'sheet1') ->setPrintedLandscape() // 设置打印

  • 我使用iText7使用pdfhtml的方法将HTML转换为PDF。我想为我的PDF文档中的几个特定页面更改页面方向。这些页面的内容是动态的,我们无法猜测有多少页面应该处于横向(即动态表的内容可能需要一个以上的页面) 当前情况:我创建了一个自定义工作者(实现了ITagWorker),该工作者在标签后面对页面进行景观化 自定义工作者: 是否有一种方法来定义所有应该在景观中显示的内容? ps:我遵循这个

  • 我在创建.pdf文件时遇到问题,页面设置为信封,横向格式。 这是我的代码,用于将asp页面转换为Itext Sharp中的pdf。 我谷歌了一下,但找不到信封size.How我要动态设置页面大小为信封、风景。 提前致谢

  • 我正在使用AutoLayout开发iPad应用程序,如果用户启用某个模式(“平视”模式),我希望只支持纵向(或纵向倒置)方向,而且,如果设备处于横向,我希望自动切换到纵向模式。 在顶视图控制器中,我有以下内容: 根据我在这里其他地方看到的答案,答案似乎是我应该使用“application SetStatusBaroOrientation”。因此,在用户选择“抬头”模式的方法中,我包括: 然而,这似

  • 问题内容: 我正在为iPhone开发一个快速的应用程序。我的应用程序中有一个模式视图,我只想使用纵向视图。 我的问题是,如何以编程方式强制手机不允许旋转?换句话说,我正在寻找的代码不允许以横向模式显示模式视图(打开人像旋转锁定)。 这仅用于1模态视图,因此我无法关闭整个应用程序的旋转,否则我将完全禁用旋转。 我在这里的研究中找到了代码, 但如果有帮助,它在目标C中。谢谢! 问题答案: 您可以将这些

  • 我正在为iPhone开发一个swift应用程序。我的应用程序中有一个模态视图,我只想在纵向视图中。 我的问题是,如何通过编程强制手机不允许旋转?换句话说,我正在寻找不允许在横向模式下显示模式视图的代码(打开纵向旋转锁定)。 这只是一个模态视图,所以我不能关闭整个应用程序的旋转,否则我会完全禁用旋转。 我在这里的研究中发现了代码,但它是在目标C中,以防有所帮助。谢谢