首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用iTextSharp填写其他字段时,如何强制PDF格式化和计算?

在使用iTextSharp填写其他字段时,如果需要强制PDF格式化和计算,可以使用以下方法:

  1. 使用PdfStamper类来填写表单字段,并设置FormFlattening属性为true,这将强制PDF格式化。
代码语言:csharp
复制
using (PdfReader pdfReader = new PdfReader(inputFile))
{
    using (PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(outputFile, FileMode.Create)))
    {
        AcroFields pdfFormFields = pdfStamper.AcroFields;
        pdfFormFields.SetField("fieldName", "fieldValue");
        pdfStamper.FormFlattening = true;
    }
}
  1. 使用PdfReaderPdfStamper类来填写表单字段,并使用PdfFormField类的SetFieldFlags方法设置字段标志位,以强制PDF格式化和计算。
代码语言:csharp
复制
using (PdfReader pdfReader = new PdfReader(inputFile))
{
    using (PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(outputFile, FileMode.Create)))
    {
        AcroFields pdfFormFields = pdfStamper.AcroFields;
        pdfFormFields.SetField("fieldName", "fieldValue");
        PdfFormField field = pdfFormFields.GetFieldItem("fieldName");
        field.SetFieldFlags(PdfFormField.FF_READ_ONLY);
    }
}
  1. 使用PdfReaderPdfStamper类来填写表单字段,并使用PdfFormField类的SetWidget方法设置字段的外观,以强制PDF格式化和计算。
代码语言:csharp
复制
using (PdfReader pdfReader = new PdfReader(inputFile))
{
    using (PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(outputFile, FileMode.Create)))
    {
        AcroFields pdfFormFields = pdfStamper.AcroFields;
        pdfFormFields.SetField("fieldName", "fieldValue");
        PdfFormField field = pdfFormFields.GetFieldItem("fieldName");
        PdfDictionary widget = field.GetWidget(0);
        PdfArray bBox = widget.GetAsArray(PdfName.RECT);
        float x1 = bBox.GetAsNumber(0).FloatValue;
        float y1 = bBox.GetAsNumber(1).FloatValue;
        float x2 = bBox.GetAsNumber(2).FloatValue;
        float y2 = bBox.GetAsNumber(3).FloatValue;
        PdfContentByte canvas = pdfStamper.GetOverContent(widget.GetAsNumber(PdfName.PAGE).IntValue);
        canvas.SetColorStroke(BaseColor.BLACK);
        canvas.Rectangle(x1, y1, x2 - x1, y2 - y1);
        canvas.Stroke();
    }
}

以上方法可以强制PDF格式化和计算,并且不涉及到其他云计算品牌商。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券