Проблема при заполнении PDF и печати PDF - PullRequest
0 голосов
/ 01 марта 2019

Я использую свое заявление для заполнения и распечатки форм.

Когда форма распечатывается, весь текст, кроме имени клиента, растягивается черным ...

Я пыталсяраспечатать сохраненный PDF, и тот же результат происходит.

Когда я открываю заполненный PDF-файл и изменяю текст, файл распечатывается правильно.

Код, который я используюзаполнить PDF и распечатать его под ... Есть ли что-то, что я могу изменить в своем коде, чтобы этого не произошло?

  Private Sub btnPrint_Click(sender As Object, e As EventArgs) Handles btnPrint.Click
    Me.xmltopdf()
    Me.Print()
End Sub

Private Sub xmltopdf()
    Dim pdfTemp As String = My.Settings.SavePDFT ' ---> It's the original pdf form you want to fill
    Dim newFile As String = My.Settings.SavePDFS & Me.TextBox1.Text & ".PDF" ' ---> It will generate new pdf that you have filled from your program

    ' ------ READING -------

    Dim pdfReader As New PdfReader(pdfTemp)

    ' ------ WRITING -------

    ' If you don’t specify version and append flag (last 2 params) in below line then you may receive “Extended Features” error when you open generated PDF
    Dim pdfStamper As New PdfStamper(pdfReader, New FileStream(newFile, FileMode.Create), "\6c", True)

    Dim pdfFormFields As AcroFields = pdfStamper.AcroFields

    ' ------ SET YOUR FORM FIELDS ------

    pdfFormFields.SetField("Field_1", TextBox1.Text)
    pdfFormFields.SetField("Field_2", TextBox2.Text)
    ' There is more fields.. just removed them this.




    pdfStamper.FormFlattening = False

    ' close the pdf
    pdfStamper.Close()
    ' pdfReader.close() ---> DON"T EVER CLOSE READER IF YOU'RE GENERATING LOTS OF PDF FILES IN LOOP
End Sub


' Print PDF
 Private Sub Print()
' Wait a bit so the PDF file is created before printing.
    Threading.Thread.Sleep(2500)

    Dim psi As New ProcessStartInfo

    psi.UseShellExecute = True

    psi.Verb = "print"

    psi.WindowStyle = ProcessWindowStyle.Hidden

    'psi.Arguments = PrintDialog1.PrinterSettings.PrinterName.ToString()

    psi.FileName = My.Settings.SavePDFS & Me.Ordre_NummerTextBox.Text & ".PDF" ' Here specify a document to be printed

    Process.Start(psi)

End Sub

enter image description here

Это распечатанный PDF.

1 Ответ

0 голосов
/ 01 марта 2019

Я создал новый PDF-файл, и у меня не было проблем с ним, sinse.

Старый PDF-файл имел размер 25,8 МБ, а новый - всего 140 КБ.

Также я помнючто старый файл копируется и изменяется несколько раз в прошлом.

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