Странная ошибка при использовании AWS Elasticsearch с пакетами Laravel

Взгляните на пример StampHeader1 . Я адаптировал ваш код, введя ColumnText.showTextAligned() и используя Phrase для простоты (возможно, вы также можете изменить эту часть своего кода):

public void manipulatePdf(String src, String dest) throws IOException, DocumentException {
    PdfReader reader = new PdfReader(src);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
    Phrase header = new Phrase("Copy", new Font(FontFamily.HELVETICA, 14));
    for (int i = 1; i <= reader.getNumberOfPages(); i++) {
        float x = reader.getPageSize(i).getWidth() / 2;
        float y = reader.getPageSize(i).getTop(20);
        ColumnText.showTextAligned(
            stamper.getOverContent(i), Element.ALIGN_CENTER,
            header, x, y, 0);
    }
    stamper.close();
    reader.close();
}

Как вы узнали, это код предполагает, что никакого вращения не было определено.

Теперь рассмотрим пример StampHeader2 . Я использую ваш «неправильный» файл, и я добавил одну дополнительную строку:

stamper.setRotateContents(false);

Говоря мастеру, чтобы не вращать содержимое, которое я добавляю, я добавляю контент, используя как если бы страница не была повернута. Посмотрите на результат: stamped_header2.pdf . Мы добавили «Копировать» вверху страницы, но по мере поворота страницы мы видим, что слово отображается сбоку. Слово вращается, потому что страница повернута.

Возможно, это то, что вы хотите, может быть, это не так. Если это не так, посмотрите StampHeader3 , в котором я вычисляю x и y по-разному, основываясь на вращении страницы:

if (reader.getPageRotation(i) % 180 == 0) {
    x = reader.getPageSize(i).getWidth() / 2;
    y = reader.getPageSize(i).getTop(20);
}
else {
    x = reader.getPageSize(i).getHeight() / 2;
    y = reader.getPageSize(i).getRight(20);
}

Теперь слово «Копировать» появляется на том, что воспринимается как «верх страницы» (но на самом деле это может быть сторона страницы): stamped_header3.pdf

0
задан Clark 18 February 2019 в 16:45
поделиться