Как установить ориентацию на альбомную в iText 7 - PullRequest
0 голосов
/ 24 января 2019

Я конвертирую HTML в PDF, используя iText7 с методом convertToPdf (). 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 ]

0 голосов
/ 24 января 2019

Пожалуйста, просто используйте метод конвертора, который принимает 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);
0 голосов
/ 24 января 2019

Вы можете использовать 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);

проверьте это более подробно здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...