iTextSharp를 사용하여 워터 마크를 적용한 후 PDF 문서를 클라이언트로 전달합니다. 일부 컴퓨터 (모두 v.11의 PDF 뷰어 사용)에서 다음 오류가 표시됩니다.iTextSharp로 생성 된 PDF가 워터 마크 생성 오류
이 페이지에 오류가 있습니다. Acrobat에서 페이지를 올바르게 표시하지 못할 수 있습니다. 문제를 해결하려면 PDF 문서를 만든 사람에게 문의하십시오. 다음과 같이
워터 마킹 코드는 다음과 같습니다 환경 요소뿐만 아니라 내가 예상이 거기에있다, 그래서 내가 시도한 모든 컴퓨터에서이 작업을 다시 할 수
protected static byte[] GetStampedDocument(byte[] content, string mark, string heading)
{
PdfReader reader = new PdfReader(content);
using (MemoryStream stream = new MemoryStream())
{
PdfStamper pdfStamper = new PdfStamper(reader, stream);
for (int i = 1; i <= reader.NumberOfPages; i++)
{
iTextSharp.text.Rectangle pageSize = reader.GetPageSizeWithRotation(i);
PdfContentByte pdfPageContents = pdfStamper.GetOverContent(i);
pdfPageContents.BeginText();
PdfGState gstate = new PdfGState();
gstate.FillOpacity = 0.2f;
gstate.StrokeOpacity = 0.3f;
pdfPageContents.SaveState();
pdfPageContents.SetGState(gstate);
BaseFont baseFont = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, Encoding.ASCII.EncodingName, false);
pdfPageContents.SetFontAndSize(baseFont, 46);
pdfPageContents.SetRGBColorFill(32, 32, 32);
pdfPageContents.ShowTextAligned(PdfContentByte.ALIGN_CENTER, mark, pageSize.Width/2, pageSize.Height/2, 66);
if (heading != null && heading.Length > 0)
{
pdfPageContents.SetFontAndSize(baseFont, 12);
pdfPageContents.SetRGBColorFill(32, 32, 32);
pdfPageContents.ShowTextAligned(PdfContentByte.ALIGN_LEFT, heading, 5, pageSize.Height - 15, 0);
}
pdfPageContents.EndText();
pdfPageContents.RestoreState();
}
pdfStamper.FormFlattening = true;
pdfStamper.FreeTextFlattening = true;
pdfStamper.Close();
return stream.ToArray();
}
}
.
아이디어가 있으십니까?