Я разобрался с решением этой проблемы. Я хотел, чтобы другие, кто мог столкнуться с подобной проблемой, извлекли выгоду из моего решения, поэтому я публикую его как ответ вместо того, чтобы комментировать мой вопрос.
Таким образом, получается, что метод getImageScaledHeight()
не работает, если автоматическое масштабирование включено с помощью setAutoScale(true)
. Автоматическое масштабирование будет происходить, но только после того, как изображение будет добавлено в документ, но для установки положения изображения в верхней части страницы нам потребуется масштабированная высота изображения при вызове следующего метода
image.setFixedPosition(i + 1, 0, PageSize.A4.getHeight()-image.getImageScaledHeight());
Чтобы включить масштабирование изображения, чтобы поместиться на странице, а также расположить их в нужном месте на странице, вам нужно
Сначала масштабируйте изображение, используя метод image.scaleToFit(fitWidth, fitHeight)
, а затем рассчитайте нижнее положение, используя scaled
Рассчитайте нижнюю позицию, используя масштабированное изображение высотой (image.getImageScaledHeight()
) и высотой страницы .
Теперь, если вы хотите иметь поля в своем PDF-файле, вам придется изменить код для масштабирования изображения и соответственно установить фиксированное положение. Ниже приведен пример кода решения для обоих сценариев.
image.scaleToFit(pdfA4usableWidth, pdfA4usableHeight);
image.setFixedPosition(i + 1, 0, PageSize.A4.getHeight()-image.getImageScaledHeight());
Щелкните здесь, чтобы увидеть пример кода с консольным выходом
float leftMargin = document.getLeftMargin(), rightMargin = document.getRightMargin();
float topMargin = document.getTopMargin(), bottomMargin = document.getBottomMargin();
float pdfA4usableWidth = PageSize.A4.getWidth() - leftMargin - rightMargin;
float pdfA4usableHeight = PageSize.A4.getHeight() - topMargin - bottomMargin;
System.out.println("A4 usable width: "+pdfA4usableWidth+", usable height: "+pdfA4usableHeight);
image.scaleToFit(pdfA4usableWidth, pdfA4usableHeight);
image.setFixedPosition(i + 1, 0, PageSize.A4.getHeight()-image.getImageScaledHeight());
Щелкните здесь, чтобы увидеть пример кода с консольным выводом
PDF сгенерированных ...
Изображение добавлено в PDF без полей
Изображение добавлено в PDF с полями по умолчанию
Примечания:
Или спросите у своей базы данных:
$ psql -U postgres -c 'SHOW config_file'
в MacOS Mojave, где я использовал brew install postgresql
для установки, я нашел его здесь
/usr/local/var/postgres/postgresql.conf
Я получил это с помощью следующей команды sql, процитированной в this ответ здесь:
psql -U postgres -c 'SHOW config_file'
Печать pg_hba.conf расположение файла:
su - postgres -c "psql -t -P format=unaligned -c 'show hba_file';"
Печать postgresql.conf расположение файла:
su - postgres -c "psql -t -P format=unaligned -c 'SHOW config_file';"
Выполнить
sudo updatedb
затем
locate postgresql.conf