私はあなたのローカルフォーマットで数値を書くことができたPDFフォームを見てきました.PDFBoxで読むことができるバックグラウンドで二重の値が保存されています。 私の例でフィールドをどのように伝えることができますか? 125.5(ダブル)と「125,5」(私のロケール)を表示しますか? ユーザーがフィールドを編集するとき、バックグラウンドの値は有効な倍精度です。いくつかのメカニズムが組み込まれていますか、または回避策はどのように見えますか?前もって感謝します。フォーマット番号を表示して二重値を保存
public final class CreateSimpleForm
{
private static final PDFont FONT = PDType1Font.HELVETICA;
private static final float FONT_SIZE = 12;
private CreateSimpleForm()
{
}
public static void main(String[] args) throws IOException
{
PDDocument document = new PDDocument();
PDPage page = new PDPage(PDRectangle.A4);
document.addPage(page);
PDResources resources = new PDResources();
resources.put(COSName.getPDFName("Helv"), FONT);
PDAcroForm acroForm = new PDAcroForm(document);
document.getDocumentCatalog().setAcroForm(acroForm);
acroForm.setDefaultResources(resources);
String defaultAppearanceString = "/Helv 0 Tf 0 g";
acroForm.setDefaultAppearance(defaultAppearanceString);
PDTextField textBox = new PDTextField(acroForm);
textBox.setPartialName("SampleField");
defaultAppearanceString = "/Helv " + FONT_SIZE + " Tf 0 0 0 rg";
textBox.setDefaultAppearance(defaultAppearanceString);
acroForm.getFields().add(textBox);
PDAnnotationWidget widget = textBox.getWidgets().get(0);
PDRectangle rect = new PDRectangle(50, 750, 200, 50);
widget.setRectangle(rect);
widget.setPage(page);
widget.setPrinted(true);
page.getAnnotations().add(widget);
textBox.setValue("Sample field");
document.save("test.pdf");
document.close();
}
}