내 PDF에 2 개의 텍스트를 그립니다. 첫 번째 텍스트는 왼쪽 상단 모퉁이에 정렬되어야합니다. 이 작동합니다.첫 번째 텍스트 아래에 두 번째 텍스트 그리기
내가 사용하고 있습니다 :
canvas = stamper.GetOverContent(i)
watermarkFont = iTextSharp.text.pdf.BaseFont.CreateFont(iTextSharp.text.pdf.BaseFont.HELVETICA, iTextSharp.text.pdf.BaseFont.CP1252, iTextSharp.text.pdf.BaseFont.NOT_EMBEDDED)
watermarkFontColor = iTextSharp.text.BaseColor.RED
canvas.MoveTo(0, 0) 'I think the canvas is the space that we draw onto. My documents always start at position X=0 and Y=0, so move to 0,0 should be fine
canvas.BeginText()
canvas.SetFontAndSize(watermarkFont, 12)
canvas.SetColorFill(watermarkFontColor)
canvas.ShowTextAligned(Element.ALIGN_TOP, uText, 0, 830, 0) 'is 830 the width of the available space?
canvas.EndText()
지금 내가 첫 번째 텍스트 아래에 다른 텍스트를 약 100 픽셀을 그릴 싶습니다.
내가 사용하고 있습니다 : 두 번째 텍스트는 그러나 전혀 표시되지 않습니다
canvas.MoveTo(0, 100) 'let's draw the second text at X=100, Y=100
canvas.BeginText()
canvas.SetFontAndSize(watermarkFont, 12)
canvas.SetColorFill(watermarkFontColor)
canvas.ShowTextAligned(Element.ALIGN_CENTER, uBewirtung, 0, 830, 0)
canvas.EndText()
. 나는 문서 밖에서 그림을 그리고있는 것으로 의심하지만 실수는하지 않습니다.
PDF 기본 좌표는 수학에서 평소와 같습니다. 즉, 위쪽으로 갈 때 ** y ** 값이 상승합니다. (변형을 적용하면 변경 될 수 있지만 좌표계가 변형되었음을 언급하지 않았습니다.) 따라서 텍스트 1을 (0,0)에 그리고 텍스트 2를 (0, 100)으로 그릴 때 후자는 그려지지 않습니다 * 아래 * 대신 * 위의 * 텍스트 1. 또한 좌표계 원점은 일반적으로 페이지의 왼쪽 하단에서 시작됩니다 (필수는 아니지만 매우 일반적입니다). 따라서 첫 번째 코드 블록이 실제로 왼쪽 상단 모서리에 텍스트를 추가하는 경우 몇 가지 중요한 세부 사항을 언급하는 것을 잊었습니다. – mkl
@mkl 상승하는 y 값에 대한 정보는 훌륭합니다! 이것은 내 코드이며, 나는 아무것도 놓치지 않았습니다. 텍스트는 실제로 왼쪽 상단에 그려집니다. – tmighty
[코드를 한 번 더 살펴보면] ... 아, ok ... canvas.ShowTextAligned'에는 세 개의 부동 매개 변수 '0, 830, 0'이 있습니다. 그들은 ** x **, ** y ** 및 ** rotation **입니다. 따라서 '830'은 너가 생각한 너비가 아니지만, 텍스트가 그려지는 곳은 ** y ** 좌표이고, 왼쪽 하단 구석에 원점이있는 A4 세로 830은 페이지. BTW,'Element.ALIGN_TOP'는 거기에서 의미가 없으며, 정렬은'ALIGN_CENTER','ALIGN_RIGHT' 또는'ALIGN_LEFT' 만있을 수 있습니다. – mkl