Copy link to clipboard
Copied
How can i pre-fill a fillable pdf form from data in an excel spreadsheet and then email each individual their pre-filled form for editing, like you would mail merge in office
Copy link to clipboard
Copied
Hi Anniem,
The mail merge is available with some versions of the PDF Maker plugin for Office (the Acrobat ribbon).
However, the option is not available in MS Excel.
You may try the workaround provided in the following forum thread with the similar issue.
Import data from Excel into fillable pdf using Acrobat XI Pro - is it possible? How?
Check if that works for you.
Hope that helps.
Let us know if you need any help.
Regards,
Meenakshi
Copy link to clipboard
Copied
I've developed a (paid-for) tool that allows you to do exactly that. You can set it up to use the value of a field as the email address, as well as specify the subject line, message body, etc. You can find it here: Custom-made Adobe Scripts: Acrobat -- Mail Merge and Email PDF Files
Copy link to clipboard
Copied
There are articles on this topic and scripts here:
https://www.pdfscripting.com/public/ExcelAndAcrobat.cfm
Copy link to clipboard
Copied
If you are using Adobe Acrobat and Windows operating system, you can purchase the AutoMailMerge plugin available from EverMap (http://evermap.com/AutoMailMerge.asp), which is specifically designed to do this.
Copy link to clipboard
Copied
I know the post is like 2 years old, however I found a nice tool which get's the job done quite well: www.pdfmailmerger.com
if someone has the same problem...
Copy link to clipboard
Copied
Thanks for updating, came in handy this afternoon!
Copy link to clipboard
Copied
I know this is three years old, but I came to this thread to figure it out a couple days ago. Ended up figuring it out by myself. If this is something you do regularly, I suggest investing in a tool that will do it for you, especially if there are multiple text field entries like email, phone, first name, last name, etc...
1. Create a Microsoft Excel spread sheet for just one of thise text field categories. For example: an excel spread sheet dedicated to emails.
2. Label each column in the top row email#1, email#2, email#3 and so on until you're done. This means that if you have 100+ emails, you would be naming columns all the way up to email#100.
*This is why I stress that this process is really involved and tedious and I suggest getting a plug-in (several listed below) if you have a long list or have to create these often.
3. Now you put in the emails. Each email gets its own column. Doing it this way gives me the most success.
*When I place every email in one column labeled "emails," this resulted in the data not importing properly
4. Convert the .xlsx file to a tab delimited text (.txt) file. Also be sure to save a .xlsx version.
5. Create your PDF with your fillable text field boxes. Make sure the formatting is even and aligned.
6. Label each email text field box according to the column name. The first Email text field box will be named email#1, the second will be named email#2 and so on.
7. Go to the "Prepare Form" tool. Look for a little tool icon next to the word More. Click the drop-down menu.
8. Import your .txt data by clicking "options" and selecting Text Files. Import
9. Start again with the next text field (names, phone numbers, addresses, etc...)
*I cannot stress how long this process will take. There are tools and resources in this thread, including the link to a Q&A thread that also details how to do a process similar to this.
Best,
Copy link to clipboard
Copied
There is a free tool to do mail mergers like this at pdfzero.com
Copy link to clipboard
Copied
AWESOME!! Thank you so much! literraly created 50 PDF's that my client was manually creating in less than 5 mins! I appreciate you sharing this.
Copy link to clipboard
Copied
Just a word of warning for anyone using third-party online PDF mergers: Make sure you don't share any sensitive or private information, as you never know who is behind such services and what is done with the data you upload to them!
Copy link to clipboard
Copied
This is an old question but I just find out a open source tool that do the job very well (and do it offline):
Copy link to clipboard
Copied
This tool is cheap ($28), but it's not free > https://plainlab.gumroad.com/l/plainmerge
That link you gave is to the source code.
Copy link to clipboard
Copied
hi I like plainmerge, can it merge in a QR code or an image of a QR code?
Copy link to clipboard
Copied
Currently no, but you can request the feature to PlainMerge team I believe. They are pretty supportive.
Copy link to clipboard
Copied
My tool can do both things, by the way.
Copy link to clipboard
Copied
Three things:
1. You cannot access all system fonts you are limited to base type fonts. It would be doable for us only if we can access and choose from all of our system fonts.
2. Color options needs to all for custom color codes to be used, otherwise it is not doable for us to use this app.
3. For those who are use to regular mail merge, they need to know that they have to lay out each field as Name1, Address1, Name2, Address2 accross the top row as headers for any forms used that have multiple records on on sheet. This is when you are spitting the printed record to be used such as name card holder. This is something we have done in the past so nothing new. It would be nice to have it read by row as a records. It is done in othe pdf merge applications. Just something to think about.
We do not want to create artwork that has names and departments on name tage in pdf then convert to word nor do we want to create in word then conver to PDF. Because of art layout is it cleaner and more visually pleasing to do everything in PDF.
Just thought someone might like to know! Otherwise simple to use, works smoothly! Great work to those who created it, maintain it and update it!
Copy link to clipboard
Copied
I believe PlainMerge support manual-input hex code for colors. The system fonts are not suppoted yet though.
Copy link to clipboard
Copied
I know this is old but I have been working on this issue for a client recently. I have created a mailmerge application to take a input.txt file (tab delimited excel file) and a form (fillable pdf file) and output to folder. My version saves the files name as the value in a field named BoxF (for a W3 annual report for a client - client name) . This can be modified as needed . I have uploaded the Excel File (input.xlsx) , Form File (form.pdf), Python Script below: Once you have your Python Environment set this should give you the ground work for creating your own mailmerge python scripts.
import pandas as pd
import os
from PyPDF2 import PdfFileReader, PdfFileWriter
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
root.withdraw()
# Open a file dialog box to select the tab-delimited text file
text_file_path = filedialog.askopenfilename(title = "Select the tab-delimited text file", filetypes = (("Text files", "*.txt"), ("all files", "*.*")))
# Open a file dialog box to select the fillable PDF form
pdf_file_path = filedialog.askopenfilename(title = "Select the fillable PDF form", filetypes = (("PDF files", "*.pdf"), ("all files", "*.*")))
# Open a folder dialog box to select the output folder
output_folder = filedialog.askdirectory(title = "Select the output folder")
# Read in the tab-delimited text file
data = pd.read_csv(text_file_path, delimiter="\t")
# Open the fillable PDF form
pdf_template = PdfFileReader(open(pdf_file_path, "rb"))
fields = pdf_template.getFields().keys()
# Loop through each record in the data
for index, row in data.iterrows():
# Create a new PDF form for each record
pdf_output = PdfFileWriter()
pdf_output.addPage(pdf_template.getPage(0))
# Loop through each field in the record
for field, value in row.items():
# Set the value of the corresponding field in the PDF form
if field in fields:
pdf_output.updatePageFormFieldValues(pdf_output.getPage(0), {field: value})
if "BoxF" in fields:
file_name = pdf_template.getFormTextFields().get("BoxF", "output_{}.pdf".format(index))
else:
file_name = "output_{}.pdf".format(index)
# Save the output as a new PDF file
with open(os.path.join(output_folder, "{}.pdf".format(file_name)), "wb") as f:
pdf_output.write(f)
Copy link to clipboard
Copied
You might not have noticed, but this is an Acrobat forum, not a Python forum.
** Note to viewers, the script presented in the previous post has literally nothing to do with Acrobat.