PDF文書に通し番号を書きたい。そして、itextSharp.dllを使用して以下のコードでそれを達成しました。
public byte[] Sign(string path, string serialnumber)
{
PdfReader pdfReader = new PdfReader(path);
MemoryStream memoryStream = new MemoryStream();
PdfStamper pdfStamper = new PdfStamper(pdfReader, memoryStream);
//iterate through all pages in source pdf
for (int pageIndex = 1; pageIndex <= pdfReader.NumberOfPages; pageIndex++)
{
iTextSharp.text.Rectangle pageRectangle = pdfReader.GetPageSizeWithRotation(pageIndex);
PdfContentByte pdfData = pdfStamper.GetUnderContent(pageIndex);
pdfData.SetFontAndSize(BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.NOT_EMBEDDED), 40);
PdfGState graphicsState = new PdfGState();
graphicsState.FillOpacity = 0.4F;
pdfData.SetGState(graphicsState);
pdfData.SetColorFill(iTextSharp.text.Color.BLUE);
pdfData.BeginText();
pdfData.ShowTextAligned(iTextSharp.text.Element.ALIGN_CENTER, serialnumber, pageRectangle.Width - 175, pageRectangle.Height - 50, 0);
pdfData.EndText();
}
pdfStamper.Close();
memoryStream.Close();
return memoryStream.ToArray();
}
しかし、タイプが varbinary(max) のデータベースに pdf ドキュメントを保存します。
では、データベースにバイナリとして保存されているドキュメントに数値を書き込むにはどうすればよいですか?