iTextSharp를 사용하여 기존 PDF를로드하고 PdfStamper를 사용하여 텍스트를 추가합니다. 텍스트를 완전히 제어하고 싶습니다. 즉, 글꼴 (트루 타입 만), 글꼴 크기 및 좌표를 제어 할 수 있기를 원합니다. 지금은 특정 코디네이트에 텍스트를 추가하고 ShowFontAndSize를 사용하여 글꼴 및 글꼴 크기를 설정하기 위해 ShowTextAligned를 사용하고 있습니다. 이 부가 기능은 내 코드 텍스트 : 다음 기능은 트루 타입 글꼴을로드하는 데 사용됩니다iTextSharp 및 PDFStamper를 사용하여 PDF에서 다른 글꼴 사용
private void AddText(BaseFont font, string text, int x, int y, int size)
{
pdf.BeginText();
pdf.SetFontAndSize(font, size);
pdf.ShowTextAligned(PdfContentByte.ALIGN_LEFT, text, x, y, 0);
pdf.EndText();
}
:
다음 코드는 기존의 PDF로드하는 데 사용됩니다public BaseFont GetFont(string font, string encoding)
{
if (!(font.EndsWith(".ttf") || font.EndsWith(".TTF")))
font += ".ttf";
BaseFont basefont;
basefont = BaseFont.CreateFont(ConfigurationManager.AppSettings["fontdir"] + font, encoding, BaseFont.NOT_EMBEDDED);
if (basefont == null)
throw new Exception("Could not load font '" + font + "' with encoding '" + encoding + "'");
return basefont;
}
:
Stream outputPdfStream = Response.OutputStream;
PdfReader pdfReader = new PdfReader(new RandomAccessFileOrArray(HttpContext.Current.Request.MapPath("PdfTemplates/" + ConfigurationManager.AppSettings["pdf_template"])), null);
PdfStamper pdfStamper = new PdfStamper(pdfReader, outputPdfStream);
pdf = pdfStamper.GetOverContent(1);
을
다른 글꼴을 사용하려고 할 때를 제외하고는 모두 완벽하게 작동합니다. 따라서 AddText가 다른 글꼴로 여러 번 호출되면 PDF는 openend시 일반 오류를 표시합니다. ShowTextAligned 함수를 사용하여 다른 글꼴을 사용할 수 있는지 궁금 하고요. 그렇다면 어떻게됩니까?