如何在数据库中保存varbinary的pdf文档上写一个数字

本文关键字:数字 一个 文档 pdf 数据库 保存 varbinary | 更新日期: 2023-09-27 18:22:26

我想在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();
}

但我将pdf文档保存在数据库中,该数据库类型为varbinary(max)。

那么,我如何在数据库中以二进制形式保存的文档上写一个数字呢?

如何在数据库中保存varbinary的pdf文档上写一个数字

如@mkl所述,PdfReader的另一个参数是byte[],因此可以轻松使用二进制数据。