Я использую визуальную базовую в сочетании с iTextSharp для заполнения формы PDF.Используйте VB.net и iTextSharp для удаления значения MAXLEN поля на acroform
Все замечательно, за исключением того факта, что длина одного из полей формы слишком короткая.
Из того, что я могу определить, мне нужно удалить значение MAXLEN для поля из словаря ... но я дрогнута, если могу узнать, как это сделать, используя VB и iTextSharp.
Само поле называется «internalP» и в настоящее время установлено на длину 4 символа. Мне нужно, чтобы оно было 10 символов.
Я предположил, что могу как-то изменить поле, но, проведя несколько часов, оглядываясь по сторонам, я думаю, что решение - это просто удалить свойство MAXLEN, просто я не могу найти какой-либо пример кода.
Помогите пожалуйста?
код я бегу до сих пор это:
Привет, мой код выглядит следующим образом:
Imports iTextSharp.text.pdf
Imports iTextSharp.text
Imports System.IO
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim pdfTemplate As String = "z:\shared\LP1F.pdf"
Dim newFile As String = "z:\shared\Final.pdf"
Dim pdfReader As New PdfReader(pdfTemplate)
Dim pdfStamper As New PdfStamper(pdfReader, New FileStream(newFile, FileMode.Create))
Dim pdfFormFields As AcroFields = pdfStamper.AcroFields
' set form pdfFormFields
'''
'this was my first attempt but is not working
'I receive a compilation error saying that I can't use nul'
'''
pdfFormFields.SetFieldProperty("internalP", "FieldMaxLength", 10, null)
pdfFormFields.RegenerateField("internalP")
pdfFormFields.SetField("internalP", "1234567890")
'''
' therefore I started with this code, but then got stuck!!
'''
Dim item As AcroFields.Item
item = pdfFormFields.GetFieldItem("internalP")
Dim pdfDictionary As PdfDictionary = item.GetWidget(0)
pdfDictionary.Remove(PdfName.MAXLEN)
MessageBox.Show("Finished")
' flatten the form to remove editting options, set it to false
' to leave the form open to subsequent manual edits
pdfStamper.FormFlattening = False
' close the pdf
pdfStamper.Close()
End Sub
End Class
Пожалуйста, покажите код, который у вас уже есть. –
Привет, я обновил свой пост с моим кодом, поскольку он в настоящее время стоит –
Вам нужно программно изменять размер поля каждый раз, или вы можете просто перейти в программу редактирования, такую как Adobe Acrobat, внести изменения один раз и сделать это с помощью Это? –