0

iText を使用してフォント プロパティを変更しようとしていますが、うまくいきません。このコードの何が問題なのかについて何か意見はありますか?

public static ByteArrayOutputStream createPersonnelReport(String sablonDir, String g,byte[] fotograf) {
        ByteArrayOutputStream baos = null;
        try {
            baos = new ByteArrayOutputStream();
            BaseFont fontTimes = BaseFont.createFont(sablonDir + File.separator + fontName, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

            PdfReader reader = new PdfReader(sablonDir + File.separator + tmSablonForSicilKaydiName);
            PdfStamper stamper = new PdfStamper(reader, baos);
            AcroFields form = stamper.getAcroFields();
            PdfContentByte canvas = stamper.getOverContent(1);

            form.setField("g", g);
            boolean check=form.setFieldProperty("g", "textsize", new Float(26), null);                                     
            System.out.println("check: "+ check);

            InputStream fotografImage = new ByteArrayInputStream(fotograf);
            BufferedImage bImageFromConvert = ImageIO.read(fotografImage);
            int type = bImageFromConvert.getType() == 0 ? BufferedImage.TYPE_INT_ARGB : bImageFromConvert.getType();
            BufferedImage dimensionedImage = resizeImage(bImageFromConvert, type);
            ImageIO.write(dimensionedImage, "jpg", new File("c:/yeniPersonelFoto.jpg"));
            Image image1 = Image.getInstance("c:/yeniPersonelFoto.jpg");
            image1.setAbsolutePosition(450f, 650f);
            canvas.addImage(image1);        
            stamper.setFormFlattening(true);
            stamper.close();

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            return baos;
        }
    }

編集: チェック: true が出力に返されます

4

1 に答える 1

1

答えは、欠落しているコード行でした。

form.regenerateField("g");

問題を解決しました。変更を行った後、フィールドを再生成する必要があります。

于 2013-02-24T08:09:56.157 に答える