Как поставить галочку «выбрать источник бумаги по размеру страницы PDF» iText7? - PullRequest
2 голосов
/ 11 октября 2019

Я пытаюсь проверить «Выбор источника бумаги по размеру страницы PDF» в настройках печати через iText7, для моего проекта требования, которое генерирует PDF. Но библиотеку, которую я использую, я не могу найти нужную вещь.

public static void createPdf_PageType(String baseUri, String[] src, String dest, PageSize pageSize, boolean rotate) throws IOException {

    ConverterProperties properties = new ConverterProperties();
    properties.setBaseUri(baseUri);
    PdfWriter writer = new PdfWriter(dest);
    PdfDocument pdf = new PdfDocument(writer);

    PdfViewerPreferences preferences = new PdfViewerPreferences();
    preferences.setPrintScaling(PdfViewerPreferencesConstants.NONE);
    pdf.getCatalog().setViewerPreferences(preferences);

    PdfMerger merger = new PdfMerger(pdf);
    log.info("Generating PDF");
    for (String html : src) {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        PdfDocument temp = new PdfDocument(new PdfWriter(baos));
        if(rotate) {
        temp.setDefaultPageSize(pageSize.rotate()); /** Page Size and Orientation */
        } else {
            temp.setDefaultPageSize(pageSize); /** Page Size and Orientation */
        }

        HtmlConverter.convertToPdf(html, temp, properties);
        temp = new PdfDocument(new PdfReader(new ByteArrayInputStream(baos.toByteArray())));
        merger.merge(temp, 1, temp.getNumberOfPages());
        temp.close();
    }
  //  pdf.getCatalog().setViewerPreferences(new PdfViewerPreferences().setPrintScaling(PdfViewerPreferences.PdfViewerPreferencesConstants.NONE));
    pdf.close();
    log.info("PDF Generated");

}

Я просто хочу поставить галочку в опции печати

1 Ответ

4 голосов
/ 14 октября 2019

Установите ниже свойство для PdfViewerPreferences, дало ожидаемый результат

PdfViewerPreferences preferences = new PdfViewerPreferences();
preferences.setPickTrayByPDFSize(true);

iText7 предоставляет широкий спектр служебных методов, только подходящие примеры и документация недоступны.

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