I use pdftk to fill_form in many pdf's in a loop. The problem im having is that i use pdftk to fill 3 of the 5 fields. The other fields have standar values.
Is there a way to skip certain fields when filling?
This is my code now:
for each objfile in colFiles
If right(objfile.Name,3) = "pdf" Then
FileFill = strFolderPath + "\" + objFile.Name
filled = strFolderPath + "\" + Replace(objFile.Name,".pdf", "_.pdf")
pdfnumber = Left(objfile.name,InStr(objFile.Name," ")-1)
set objFDF = objFSO.CreateTextFile(fdfform,true)
objFDF.write "%FDF-1.2" & vbCrLf
objFDF.write "%âãÏÓ" & vbCrLf
objFDF.write "1 0 obj " & vbCrLf
objFDF.write "<<" & vbCrLf
objFDF.write "/FDF " & vbCrLf
objFDF.write "<<" & vbCrLf
objFDF.write "/Fields [" & vbCrLf
objFDF.write "<<" & vbCrLf
objFDF.write "/V (" & pdfnumber & ")" & vbCrLf
objFDF.write "/T (Tekening nr)" & vbCrLf
objFDF.write ">> " & vbCrLf
objFDF.write "<<" & vbCrLf
' objFDF.write "/V ()" & vbCrLf
objFDF.write "/T (Ruimte)" & vbCrLf
objFDF.write ">> " & vbCrLf
objFDF.write "<<" & vbCrLf
objFDF.write "/V ()" & vbCrLf
objFDF.write "/T (Aantal)" & vbCrLf
objFDF.write ">> " & vbCrLf
objFDF.write "<<" & vbCrLf
objFDF.write "/V ()" & vbCrLf
objFDF.write "/T (Kleur)" & vbCrLf
objFDF.write ">> " & vbCrLf
objFDF.write "<<" & vbCrLf
objFDF.write "/V (" & Project & ")" & vbCrLf
objFDF.write "/T (Project)" & vbCrLf
objFDF.write ">> " & vbCrLf
objFDF.write "<<" & vbCrLf
objFDF.write "/V ()" & vbCrLf
objFDF.write "/T (Opmerkingen)" & vbCrLf
objFDF.write ">> " & vbCrLf
objFDF.write "<<" & vbCrLf
objFDF.write "/V ()" & vbCrLf
objFDF.write "/T (Materiaal)" & vbCrLf
objFDF.write ">>]" & vbCrLf
objFDF.write ">>" & vbCrLf
objFDF.write ">>" & vbCrLf
objFDF.write "endobj " & vbCrLf
objFDF.write "trailer" & vbCrLf
objFDF.write "" & vbCrLf
objFDF.write "<<" & vbCrLf
objFDF.write "/Root 1 0 R" & vbCrLf
objFDF.write ">>" & vbCrLf
objFDF.write "%%EOF" & vbCrLf
objFDF.Close
shl.run "cmd.exe /C pdftk """ & FileFill & """ fill_form """ & fdfform & """ output """ & filled & """"
'wscript.echo "cmd.exe /C pdftk """ & FileFill & """ fill_form """ & fdfform & """ output """ & FileFill & """"
Wscript.sleep 1000
'objFSO.MoveFile strFolderPath + "\" + objFile.Name , strFolderPath + "\" + Replace(objFile.Name," ", "_")
fSO.DeleteFile(FileFill)
Wscript.sleep 1000
fSO.DeleteFile(fdfform)
Wscript.sleep 1000
Else
'nothing
end If
Next
so the pdfnumber and Project needs to be filled, which is working perfectly but Kleur and Materiaal have a value already and now its sets the value as blank.
I have tried to just delete these lines from the vbs but that doesnt work as it deletes all my pdf's.
ps. this is just the section of code that handles the form. The dims are all set somewhere in the beginning of my code.
For other people, this is how i solved it for myself. Doesnt mean its the best solution and this way can probably be done way better/ more efficient. But this is how i got it working:
So now it makes the fdf into a txt and in that txt you can replace strings.
If people see ways to make this code less messy or more efficient, feedback is always welcome!