이 방법을 사용하여 이미 생성 된 PDF 문서에 텍스트를 추가하고 있습니다. ITextSharp insert text to an existing pdf 기본적으로 PdfContentByte를 사용하고 콘텐츠 템플릿을 페이지에 추가합니다.텍스트를 추가하는 ITextSharp. 일부 텍스트가 나타나지 않음
파일의 일부 영역에서 텍스트가 표시되지 않습니다. 내가 추가중인 텍스트가 이미 페이지에있는 콘텐츠 뒤에 표시되고있는 것 같습니다. 나는 pdf 문서를 그냥 이미지로 평평하게 만들었지 만 평평한 파일에서도 같은 문제가 발생했습니다.
누군가가 Itextsharp를 사용하여 숨겨진 텍스트를 추가하는 데 문제가 있습니까?
아무 소용이 링크에서 제시 한대로 나는 또한 DirectContentUnder를 사용하여 시도 .. 여기 iTextSharp hides text when write
내가 위에 기본적으로 오버레이 그래프 용지에 노력하고 이것으로 ... 내가 사용하고있는 코드입니다 PDF. 이 예제에서는 모든 페이지의 왼쪽 위 모서리에 채워지지 않는 상자가 있습니다. 이 지점의 원본 pdf에 이미지가 있습니다. 그리고 4, 5 페이지에는 상자가 채워지지 않지만 이미지가 아닌 것 같습니다.
PdfReader reader = new PdfReader(oldFile);
iTextSharp.text.Rectangle size = reader.GetPageSizeWithRotation(1);
Document document = new Document(size);
// open the writer
FileStream fs = new FileStream(newFile, FileMode.Create, FileAccess.Write);
PdfWriter writer = PdfWriter.GetInstance(document, fs);
document.Open();
// the pdf content
PdfContentByte cb = writer.DirectContent;
for (int i = 0; i < reader.NumberOfPages; i++)
{
document.NewPage();
// select the font properties
BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
cb.SetFontAndSize(bf, 4);
cb.SetColorStroke(BaseColor.GREEN);
cb.SetLineWidth(1f);
for (int j = 10; j < 600; j += 10)
{
WriteToDoc(ref cb, j.ToString(), j, 10);//Write the line number
WriteToDoc(ref cb, j.ToString(), j, 780);//Write the line number
if (j % 20 == 0)
{
cb.MoveTo(j, 20);
cb.LineTo(j, 760);
cb.Stroke();
}
}
for (int j = 10; j < 800; j += 10)
{
WriteToDoc(ref cb, j.ToString(), 5, j);//Write the line number
WriteToDoc(ref cb, j.ToString(), 590, j);//Write the line number
if (j % 20 == 0)
{
cb.MoveTo(15, j);
cb.LineTo(575, j);
cb.Stroke();
}
}
// create the new page and add it to the pdf
PdfImportedPage page = writer.GetImportedPage(reader, i + 1);
cb.AddTemplate(page, 0, 0);
}
// close the streams and voilá the file should be changed :)
document.Close();
fs.Close();
writer.Close();
reader.Close();
도움을 주셔서 감사합니다 ... 정말 고맙습니다! 모든 -Greg
도움 주셔서 감사합니다. 나는 사용하고있는 코드를 이해하지 못했고 새로운 컨텐츠 위에 페이지 컨텐츠를 겹쳐 씌우고 있다는 것을 깨닫지 못했습니다. 방금 도면을 모든 도면 위에 오버레이하도록 코드를 이동 시켰으므로 이제는 정상적으로 작동합니다. 앞으로 필자는 PdfStamper도 살펴 보겠다. – smithygreg
@smithygreg 새 코드 또는 코드의 변경 사항을 게시 할 수 있습니까? –