Quantcast
Viewing all articles
Browse latest Browse all 14069

PyPDF 2, Writing New File, Unable To Read New File

I have a very basic PDF file. I am reading that PDF file, updating some of the fields of that file, and then writing a new file name with the code below.

from PyPDF2 import PdfReader, PdfWriterfrom faker import Faker# Create an instance of the Faker classfake = Faker()# Generate 300 random first names and store them in a dictionary#first_names = {"first_name_" + str(i+1): fake.first_name() for i in range(300)}# Generate 300 random last names and store them in a dictionary#last_names = {"last_name_" + str(i+1): fake.last_name() for i in range(300)}import random# Generate 300 random 4-digit numbers and store them in a dictionarystreet_address_number = {"street_address_number_" + str(i+1): random.randint(1000, 9999) for i in range(300)}# List of common street namesstreet_names_list = ["Main Street", "First Street", "Second Street", "Third Street", "Fourth Street","Fifth Street", "Sixth Street", "Seventh Street", "Eighth Street", "Ninth Street","Tenth Street", "Elm Street", "Maple Street", "Oak Street", "Pine Street","Cedar Street", "Spruce Street", "Birch Street", "Willow Street", "Cherry Street","Washington Street", "Lincoln Street", "Jefferson Street", "Adams Street","Madison Street", "Monroe Street", "Jackson Street", "Franklin Street", "Grant Street","Taylor Street", "Tyler Street", "Polk Street", "Van Buren Street", "Harrison Street","Wilson Street", "Roosevelt Street", "Truman Street", "Kennedy Street", "Reagan Street","Clinton Street", "Carter Street", "Ford Street", "Nixon Street", "Johnson Street","Harding Street", "Hoover Street", "Eisenhower Street", "Coolidge Street", "Garfield Street"]# Generate 300 random street names and store them in a dictionarystreet_names = {"street_name_" + str(i+1): random.choice(street_names_list) for i in range(300)}# Dictionary of cities in Coloradocolorado_cities = {"Denver": ["Denver"],"Colorado Springs": ["Colorado Springs"],"Aurora": ["Aurora"],"Fort Collins": ["Fort Collins"],"Lakewood": ["Lakewood"],"Thornton": ["Thornton"],"Arvada": ["Arvada"],"Westminster": ["Westminster"],"Pueblo": ["Pueblo"],"Centennial": ["Centennial"],    # Add more cities as needed}# Select a random city from the dictionaryrandom_city = random.choice(list(colorado_cities.keys()))random_city2 = random.choice(list(colorado_cities.keys()))random_four_digit_number = random.randint(1000, 9999)random_four_digit_number2 = random.randint(1000, 9999)import datetimeimport random# Define the start and end datesstart_date = datetime.datetime(2019, 1, 1)end_date = datetime.datetime.now()# Generate a random date between start_date and end_daterandom_date = start_date + datetime.timedelta(days=random.randint(0, (end_date - start_date).days))i = 0for i in range(300):    reader = PdfReader("Test_Invoice_PDF.pdf")    writer = PdfWriter()    page = reader.pages[0]    fields = reader.get_fields()    writer.add_page(page)    writer.update_page_form_field_values(        writer.pages[0], {"Text45": fake.first_name() +" " + fake.last_name()}    )    writer.update_page_form_field_values(        writer.pages[0], {"Text46": str(random.randint(1000, 9999)) +" " + random.choice(street_names_list)}    )    writer.update_page_form_field_values(        writer.pages[0], {"Text47": random_city +", " +"Colorado"}    )    writer.update_page_form_field_values(        writer.pages[0], {"Text415": fake.first_name() +" " + fake.last_name()}    )    writer.update_page_form_field_values(        writer.pages[0], {"Text414": str(random.randint(1000, 9999)) +" " + random.choice(street_names_list)}    )    writer.update_page_form_field_values(        writer.pages[0], {"Text413": random_city2 +", " +"Colorado"}    )    writer.update_page_form_field_values(        writer.pages[0], {"Text1": random_date}    )    writer.update_page_form_field_values(        writer.pages[0], {"Text2": random_four_digit_number2}    )    writer.update_page_form_field_values(        writer.pages[0], {"Text5": "Description 1"}    )    writer.update_page_form_field_values(        writer.pages[0], {"Text6": "$100.00"}    )    writer.update_page_form_field_values(        writer.pages[0], {"Text51": "Description 2"}    )    writer.update_page_form_field_values(        writer.pages[0], {"Text61": "$200.00"}    )    writer.update_page_form_field_values(        writer.pages[0], {"Text53": "Description 3"}    )    writer.update_page_form_field_values(        writer.pages[0], {"Text62": "$300.00"}    )    writer.update_page_form_field_values(        writer.pages[0], {"Text52": "Description 4"}    )    writer.update_page_form_field_values(        writer.pages[0], {"Text63": "$400.00"}    )    writer.update_page_form_field_values(        writer.pages[0], {"SUBTOTAL": "$1000.00"}    )    writer.update_page_form_field_values(        writer.pages[0], {"enter percentage  TAX RATE": "4%"}    )    writer.update_page_form_field_values(        writer.pages[0], {"TOTAL TAX": "6%"}    )    writer.update_page_form_field_values(        writer.pages[0], {"TOTAL": "$1060.00"}    )    i += 1    filename = "filled-out%d.pdf" % i    # write "output" to PyPDF2-output.pdf    with open(filename, "wb") as output_stream:        writer.write(output_stream)

It seems to do exactly what I want it to do, it writes all the files I want, when I open the files I see the info exactly like I would think. Now my issue is...when I read the file it returns no response. Code below:

import pandas as pdfrom pandas import ExcelWriterimport PyPDF2import os##Opening up the desired PDF filesi = 0for file in os.listdir('C:/Users/joshb/PycharmProjects/BitTransit2'):    if file.endswith(".pdf"):        print(os.path.join('C:/Users/joshb/PycharmProjects/BitTransit2/', file))        print(file)        f = PyPDF2.PdfReader(file)        ff = f.get_fields()        print("WHYYY")        print(ff)

This returns nothing "{}" but when I open the PDF it shows info, also the original PDF that I am reading in the first code WILL read using the read code above, so what is happening when I am updating and rewriting the PDF? It seems to be messing it up and not reading properly?


Viewing all articles
Browse latest Browse all 14069

Trending Articles