<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Automatically add PDF metadata for accessibility after export with pikePDF in ArcGIS Pro Questions</title>
    <link>https://community.esri.com/t5/arcgis-pro-questions/automatically-add-pdf-metadata-for-accessibility/m-p/1652260#M99105</link>
    <description>&lt;P&gt;PikePDF is a conda-forge library that would allow me to write a csv file of the file paths, file names, titles, subjects, authors, and keywords and overwrite my PDF maps. I have about 70 maps that I export regularly to different locations, and need to make WCAG 2.1 compliant. Since there is no way currently to model this in arcpy and also include the accessibility tags, I will have to export one at a time. But if I can get pikePDF to work, that at least keeps me from having to write the meta data over and over again.&lt;/P&gt;&lt;P&gt;Has anyone successfully cloned their arcgis python environment and installed pikePDF?&lt;BR /&gt;&lt;BR /&gt;I'm currently at 3.3.4 and when I did this, my ArcGIS Pro environment crashes. I'm not sure why. Maybe it's not compatible??&lt;BR /&gt;&lt;BR /&gt;As a note, I couldn't clone my library until our network team allowed conda through the firewall.&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://anaconda.org/conda-forge/pikepdf" target="_blank"&gt;https://anaconda.org/conda-forge/pikepdf&lt;/A&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 22 Sep 2025 22:27:09 GMT</pubDate>
    <dc:creator>Teresa_Blader</dc:creator>
    <dc:date>2025-09-22T22:27:09Z</dc:date>
    <item>
      <title>Automatically add PDF metadata for accessibility after export with pikePDF</title>
      <link>https://community.esri.com/t5/arcgis-pro-questions/automatically-add-pdf-metadata-for-accessibility/m-p/1652260#M99105</link>
      <description>&lt;P&gt;PikePDF is a conda-forge library that would allow me to write a csv file of the file paths, file names, titles, subjects, authors, and keywords and overwrite my PDF maps. I have about 70 maps that I export regularly to different locations, and need to make WCAG 2.1 compliant. Since there is no way currently to model this in arcpy and also include the accessibility tags, I will have to export one at a time. But if I can get pikePDF to work, that at least keeps me from having to write the meta data over and over again.&lt;/P&gt;&lt;P&gt;Has anyone successfully cloned their arcgis python environment and installed pikePDF?&lt;BR /&gt;&lt;BR /&gt;I'm currently at 3.3.4 and when I did this, my ArcGIS Pro environment crashes. I'm not sure why. Maybe it's not compatible??&lt;BR /&gt;&lt;BR /&gt;As a note, I couldn't clone my library until our network team allowed conda through the firewall.&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://anaconda.org/conda-forge/pikepdf" target="_blank"&gt;https://anaconda.org/conda-forge/pikepdf&lt;/A&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Sep 2025 22:27:09 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-questions/automatically-add-pdf-metadata-for-accessibility/m-p/1652260#M99105</guid>
      <dc:creator>Teresa_Blader</dc:creator>
      <dc:date>2025-09-22T22:27:09Z</dc:date>
    </item>
    <item>
      <title>Re: Automatically add PDF metadata for accessibility after export with pikePDF</title>
      <link>https://community.esri.com/t5/arcgis-pro-questions/automatically-add-pdf-metadata-for-accessibility/m-p/1653835#M99290</link>
      <description>&lt;P&gt;It doesn't directly answer your question, but see&amp;nbsp;&lt;A href="https://community.esri.com/t5/arcgis-pro-questions/arcgis-pro-map-series-accessibility-pdf-export/m-p/1645596/highlight/true#M98538" target="_blank" rel="noopener"&gt;this thread&lt;/A&gt;&amp;nbsp;for an example of using &lt;STRONG&gt;pypdf&lt;/STRONG&gt; to write metadata to a pdf after export from Pro.&amp;nbsp; You might be able to accomplish your task without having to install pikePDF.&lt;/P&gt;</description>
      <pubDate>Mon, 29 Sep 2025 13:14:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-questions/automatically-add-pdf-metadata-for-accessibility/m-p/1653835#M99290</guid>
      <dc:creator>BrennanSmith1</dc:creator>
      <dc:date>2025-09-29T13:14:47Z</dc:date>
    </item>
    <item>
      <title>Re: Automatically add PDF metadata for accessibility after export with pikePDF</title>
      <link>https://community.esri.com/t5/arcgis-pro-questions/automatically-add-pdf-metadata-for-accessibility/m-p/1653906#M99294</link>
      <description>&lt;P&gt;I did read that earlier, but it sounds like I wouldn't be able to reference a csv with all the metadata in it and that I'd have to write it into the python script? It looks like I'm writing out the title, author, subject, keywords right into the python script yes? And this is for a map series? Whereas I'm not working with a map series in this case.&lt;BR /&gt;&lt;BR /&gt;I'm super new to python so that script looked pretty intimidating haha&lt;/P&gt;</description>
      <pubDate>Mon, 29 Sep 2025 16:07:01 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-questions/automatically-add-pdf-metadata-for-accessibility/m-p/1653906#M99294</guid>
      <dc:creator>Teresa_Blader</dc:creator>
      <dc:date>2025-09-29T16:07:01Z</dc:date>
    </item>
    <item>
      <title>Re: Automatically add PDF metadata for accessibility after export with pikePDF</title>
      <link>https://community.esri.com/t5/arcgis-pro-questions/automatically-add-pdf-metadata-for-accessibility/m-p/1654145#M99320</link>
      <description>&lt;P&gt;You would load the CSV as a dataframe, then loop through it to get the values you need to modify the PDFs.&amp;nbsp; Below is a more direct example for your workflow. I haven't tested it directly but it should work, you just need to tweak your csv column names.&lt;/P&gt;&lt;LI-CODE lang="python"&gt;import pandas as pd
from pypdf import PdfWriter, PdfReader

## Make sure your csv has simple column names without spaces
## This will make it easier to access them from a named tuple later
## In this example, I am assuming csv columns named:
    # filepath
    # title
    # author
    # subject
    # keywords

#define your csv and load as dataframe
csv_file = r"path/to/file.csv"
df = pd.read_csv(csv_file)

#iterate over the rows
for row in df.itertuples():
    # you can now access values using row.columnname

    # open pdf
    reader = PdfReader(row.filepath)
    writer = PdfWriter(clone_from=reader)
    
    #write metadata
    writer.add_metadata({"/Title": row.title
                         "/Author": row.author,
                         "/Subject": row.subject,
                         "/Keywords": row.keywords})
    
    #save pdf
    with open(row.filepath, "wb") as f:
        writer.write(f)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 30 Sep 2025 12:51:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-questions/automatically-add-pdf-metadata-for-accessibility/m-p/1654145#M99320</guid>
      <dc:creator>BrennanSmith1</dc:creator>
      <dc:date>2025-09-30T12:51:48Z</dc:date>
    </item>
    <item>
      <title>Re: Automatically add PDF metadata for accessibility after export with pikePDF</title>
      <link>https://community.esri.com/t5/arcgis-pro-questions/automatically-add-pdf-metadata-for-accessibility/m-p/1681000#M101509</link>
      <description>&lt;P&gt;I was able to use PikePDF with the help of copilot &lt;STRONG&gt;outside&lt;/STRONG&gt; of the active arcpy environment while still using the python installed with arcgis pro. I was able to get it to also hit &lt;STRONG&gt;all the metadata fields in XMP&lt;/STRONG&gt; whereas pro does not offer all the fields, like copyright etc.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Attached are those files.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;And here is the .bat to run the .py file in the same folder, since I can't attach it. The .py file references a specific location on my computer of the .csv and so that would have to be changed.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;&lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/464769"&gt;@echo&lt;/a&gt; off
REM ---------------------------------------------------------------------------
REM Olmsted County GIS – PDF Metadata Updater (Batch)
REM Overwrites PDFs in place using your CSV. No renames. Preserves QR/URLs.
REM ---------------------------------------------------------------------------

REM Path to your user-local Python venv created earlier
set "VENV_PY=%USERPROFILE%\pdfmeta-venv\Scripts\python.exe"

REM Path to the updater script (same folder as this .bat)
set "SCRIPT=%~dp0update_pdf_metadata_from_csv.py"

REM Quick checks
if not exist "%VENV_PY%" (
  echo [ERROR] Could not find venv Python at:
  echo         "%VENV_PY%"
  echo Make sure you created the venv using ArcGIS Pro's Python:
  echo   "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe" -m venv "%USERPROFILE%\pdfmeta-venv"
  echo Then install packages:
  echo   "%USERPROFILE%\pdfmeta-venv\Scripts\python.exe" -m pip install pikepdf pandas openpyxl
  pause
  exit /b 1
)

if not exist "%SCRIPT%" (
  echo [ERROR] Could not find updater script:
  echo         "%SCRIPT%"
  echo Save the corrected script as: update_pdf_metadata_from_csv.py
  echo in the same folder as this batch file.
  pause
  exit /b 1
)

echo [INFO] Running updater...
"%VENV_PY%" "%SCRIPT%"
set "ERR=%ERRORLEVEL%"

echo.
if "%ERR%"=="0" (
  echo [DONE] Update completed successfully.
) else (
  echo [DONE] Update finished with errors. See the log CSV in the same folder.
)

pause&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 29 Jan 2026 23:44:09 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-questions/automatically-add-pdf-metadata-for-accessibility/m-p/1681000#M101509</guid>
      <dc:creator>Teresa_Blader</dc:creator>
      <dc:date>2026-01-29T23:44:09Z</dc:date>
    </item>
  </channel>
</rss>

