iTextSharp 5.5.13: Добавление поля подписи в существующий PDF - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь добавить поле подписи в существующий PDF, но у меня есть две ошибки, вот мой код

    private static bool CreateForm(string inputPDF, float x, float y, float w, float h, float angle, bool allPages)
    {
        try
        {
            PdfReader reader = new PdfReader(inputPDF);
            using (FileStream os = new FileStream(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + Path.DirectorySeparatorChar + "Temp" + Path.DirectorySeparatorChar + "t0.pdf", FileMode.Create, FileAccess.Write))
            {
                PdfStamper st0 = PdfStamper.CreateSignature(reader, os, '\0', Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + Path.DirectorySeparatorChar + "Temp" + Path.DirectorySeparatorChar + "t1.pdf", true);

                PdfFormField field = PdfFormField.CreateSignature(st0.Writer);

                field.FieldName = "FIRMA";

                field.SetWidget(new Rectangle(x, y, x + w, y + h), PdfAnnotation.HIGHLIGHT_OUTLINE);
                field.SetFieldFlags(PdfAnnotation.FLAGS_PRINT);

                field.Rotate = Convert.ToInt32(Math.Round(angle));

                if (allPages)
                    for (int i = 1; i <= reader.NumberOfPages; i++)
                        st0.AddAnnotation(field, i);
                else
                    st0.AddAnnotation(field, reader.NumberOfPages);

                st0.FormFlattening = true;
                st0.Writer.CloseStream = true;
                //st0.Close();

            }
            reader.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
            return false;
        }
        return true;
    }

, теперь, если я закрою штамп st0.Close(), я получил ошибку "Подпись должна быть закрыта », иначе, если я не закрою ее, результирующий файл будет пуст (0 B);пробовал также без st0.FormFlattening = true; и без st0.Writer.CloseStream = true;, я не нашел ни одной работающей комбинации.

Предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...