2013-02-23 124 views
0

我正在嘗試使用iText更改字體屬性,但無法使其正常工作。你對這段代碼有什麼問題有任何意見嗎?在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; 
     } 
    } 

編輯:檢查:在輸出

+0

你創建一個BaseFont對象好吧......但是你不用它來做任何事情!你期望發生什麼? – mkl 2013-02-23 22:51:30

+0

在這個問題中,我沒有特意詢問BaseFont對象。它在那裏,因爲我正在嘗試另一種技術。我在詢問這些代碼行:「form.setField(」g「,g);布爾檢查= form.setFieldProperty(」g「,」textsize「,new Float(26),null); System.out.println (「check:」+ check); – lamostreta 2013-02-24 07:29:01

+0

你是對的,我看到了我自己並試圖刪除評論,但是在這個手機界面我找不到刪除按鈕...儘管如此,示例代碼應該減少到目前的問題,以防止這種誤解。 – mkl 2013-02-24 11:34:32

回答

1

真正的回報,答案是代碼缺少行:

form.regenerateField("g"); 

解決了這個問題。完成更改後,您必須重新生成該字段。