我正在使用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);
}
}
答案 0 :(得分:1)
请仅使用采用PdfDocument
作为参数的转换器方法。例如,下一个:convertToPdf(InputStream htmlStream, PdfDocument pdfDocument, ConverterProperties converterProperties)
现在,您唯一需要做的就是在转换html文件之前为文档设置页面大小。
PdfDocument pdfDocument = new PdfDocument(new PdfWriter(new File(sourcePath)));
pdfDocument.setDefaultPageSize(PageSize.A4.rotate());
HtmlConverter.convertToPdf(new FileInputStream(destPath), pdfDocument, props);
答案 1 :(得分:0)
您可以使用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);
更详细地检查它here。