невозможно поставить штамп с использованием itext7 с использованием языка Java только на PDF, созданном Skia (показывает перевернутый штамп) - PullRequest
0 голосов
/ 05 июля 2018

Я не могу поставить штамп с помощью itext7 с использованием языка Java только на сгенерированном Skia pdf (skia - это библиотека pdf, используемая Google; если кто-то работал с Google docs-> Clicks on Print -> Save as Pdf). Это штампует неправильно; если я поставлю метку в левом верхнем углу страницы PDF, то она будет отмечена слева внизу и покажет изображение (перевернутое зеркало) и текст (перевернутое зеркало). Для всех других PDF-файлов это дает правильную печать. Кажется, в сгенерированном skia файле PDF отсутствуют метаданные.

1 Ответ

0 голосов
/ 05 июля 2018

Поскольку вы не передавали ни код, ни какой-либо документ, я создал документ PDF из Google docs и использовал код, написанный в ответ на Itextsharp 7 - масштабированное и центрированное изображение в качестве водяного знака вопрос, чтобы добавить водяной знак в центре.

Результат выглядел так:

enter image description here

Как видно из свойств документа, исходный документ был создан с использованием Skia / PDF m67; изменено с помощью iText® 7.1.3.

Вам нужен водяной знак в левом верхнем углу, поэтому я изменил код так:

public void createPdf(String src, String dest) throws IOException {
    PdfDocument pdfDoc = new PdfDocument(
            new PdfReader(src), new PdfWriter(dest));
    Document document = new Document(pdfDoc);
    PdfCanvas over;
    PdfExtGState gs1 = new PdfExtGState();
    gs1.setFillOpacity(0.5f);
    int n = pdfDoc.getNumberOfPages();
    Rectangle pagesize;
    ImageData img = ImageDataFactory.create(IMG);
    float iW = img.getWidth();
    float iH = img.getHeight();
    float x, y;

    for (int i = 1; i <= n; i++)
    {
        PdfPage pdfPage = pdfDoc.getPage(i);
        pagesize = pdfPage.getPageSize();

        x = pagesize.getLeft();
        y = pagesize.getTop() - iH;

        over = new PdfCanvas(pdfDoc.getPage(i));

        over.saveState();
        over.setExtGState(gs1);

        over.addImage(img, iW, 0, 0, iH, x, y);

        over.restoreState();
    }
    document.close();
    pdfDoc.close();
}

Результат выглядит так:

enter image description here

Изображение не отражено; это в верхнем левом углу страницы. Короче говоря, нет никаких проблем с PDF, созданными с помощью Skia / PDF m67.

...