Каковы новые константы для класса PDFFontFactory в itext? - PullRequest
0 голосов
/ 02 июля 2019

Я хотел бы использовать библиотеку PdfFontFactory из iText7;однако я больше не могу использовать FontConstants (т.е. FontConstants.COURIER).Эти константы были помечены как устаревшие, но я не могу найти то, что я должен заменить это.

Эта программа использует iText7 (библиотеки также используют slf4j).Я попытался создать свой собственный шрифт, но он использует класс Font, в котором я не уверен, откуда мне следует импортировать константы (первая попытка была java.awt, которая не работала).Я также попытался создать свои собственные значения для параметров, и я попытался использовать версию без параметров, которую вы видели ранее в коде.Я получил этот код и константы из учебника iText: https://itextpdf.com/en/resources/books/itext-7-jump-start-tutorial-java/chapter-5-manipulating-existing-pdf-document

PdfDocument pdfDoc = null;
        try {
            pdfDoc = new PdfDocument(new PdfReader(sourcePDF), new PdfWriter(destPDF));

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        PdfAnnotation ann = new PdfTextAnnotation(new Rectangle(400, 795, 0, 0))
                .setTitle(new PdfString("iText"))
                .setContents("Please, fill out the form.");
            pdfDoc.getFirstPage().addAnnotation(ann);
            PdfCanvas canvas = new PdfCanvas(pdfDoc.getFirstPage());
            canvas.beginText().setFontAndSize(
                    PdfFontFactory.createFont(), 12)
                    .moveText(265, 597)
                    .showText("I agree to the terms and conditions.")
                    .endText();
            PdfAcroForm form = PdfAcroForm.getAcroForm(pdfDoc, true);
            Map<String, PdfFormField> fields = form.getFormFields();
            fields.get("language").setValue("English");
            fields.get("experience1").setValue("Yes");
            fields.get("experience2").setValue("Yes");
            fields.get("experience3").setValue("Yes");
            fields.get("shift").setValue("Any");
            PdfFont courier = PdfFontFactory.createFont(FontConstants.COURIER);
            fields.get("info")
                .setValue("I was 38 years old when I became a 007 agent.", courier, 7);
            pdfDoc.close();

Я не получаю никаких ошибок при работе с этим кодом, но eclipse выдает несколько предупреждений из-за устаревших значений.

1 Ответ

1 голос
/ 02 июля 2019

itext устарел оригинальный файл FontConstants.java и переместил все связанные со шрифтами константы в com.itextpdf.io.font.constants , так что вы можете использовать параметры ниже вместо FontConstants.java.

https://api.itextpdf.com/iText7/7.1.2/com/itextpdf/io/font/constants/StandardFontFamilies.html

https://api.itextpdf.com/iText7/7.1.2/com/itextpdf/io/font/constants/StandardFonts.html

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