2013-02-23 2 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; 
     } 
    } 

편집 : 확인 :

form.regenerateField("g"); 

이 문제를 해결 : 출력

+0

BaseFont 개체를 만들었지 만 아무 것도 사용하지 마십시오! 무슨 일이 일어날 것으로 예상됩니까? – mkl

+0

질문에서 나는 BaseFont 객체에 대해 spesificly 묻지 않습니다. 내가 또 다른 기술을 시도했기 때문에 거기에있다. 이 코드 줄에 대해 묻습니다. "form.setField ("g ", g); boolean check = form.setFieldProperty ("g ","textsize ", new Float (26), null); System.out.println ("check :"+ check); – lamostreta

+0

당신 말이 맞아요. 나 자신을보고 주석을 제거하려고했는데,이 휴대 전화 인터페이스에서 삭제 버튼을 찾을 수 없다. 그럼에도 불구하고 샘플 코드는 이러한 오해를 방지하기 위해 손에 문제가 있습니다. – mkl

답변

1

에 true를 돌려줍니다 대답은 코드의 라인이 누락이었다. 변경 한 후에는 필드를 재생성해야합니다.

관련 문제