Реализация: поскольку в PDF-файлах нет специального поля формы изображения, я использую PDPushButton в качестве обходного пути, следуя методу описано в этих ресурсах;
- Как программно вставить изображение в поле AcroForm с помощью Java PDFBox?
- https:/ /github.com/mkl-public/testarea-pdfbox2/issues/1
Вот код для прикрепления изображения к PDPushButton.
Код: Выделить всё
@SneakyThrows
public static void fillInitialField(String inputFilePath, String outputFilePath) {
// Load input file
PDDocument document = PDDocument.load(new File(inputFilePath));
// Find and link the relevant signature field
PDPushButton initial = PdfService.findInitial(document, "132323423180965");
PDImageXObject pdImageXObject = PDImageXObject.createFromFile("initial.png", document);
float width = 10 * pdImageXObject.getWidth();
float height = 10 * pdImageXObject.getHeight();
PDAppearanceStream pdAppearanceStream = new PDAppearanceStream(document);
pdAppearanceStream.setResources(new PDResources());
try (PDPageContentStream pdPageContentStream = new PDPageContentStream(document, pdAppearanceStream)) {
pdPageContentStream.drawImage(pdImageXObject, 200, 300, width, height);
}
pdAppearanceStream.setBBox(new PDRectangle(width, height));
List
widgets = initial.getWidgets();
for (PDAnnotationWidget pdAnnotationWidget : widgets) {
PDAppearanceDictionary pdAppearanceDictionary = pdAnnotationWidget.getAppearance();
if (pdAppearanceDictionary == null) {
pdAppearanceDictionary = new PDAppearanceDictionary();
pdAnnotationWidget.setAppearance(pdAppearanceDictionary);
}
pdAppearanceDictionary.setNormalAppearance(pdAppearanceStream);
}
initial.setReadOnly(true);
// Save and close the document
FileOutputStream fos = new FileOutputStream(outputFilePath);
document.save(fos);
document.close();
}
Как я могу реализовать вложение изображения в поле формы PDF таким образом, чтобы это не делало недействительной существующую подпись? Я открыт для альтернативных подходов для достижения этой функциональности.
Подробнее здесь: https://stackoverflow.com/questions/783 ... sting-sign
Мобильная версия