Skip to content

Conversation

@simonhammes
Copy link
Collaborator

@simonhammes simonhammes commented Oct 23, 2024

Scripts

Merge PDF files

import os
import pdfmerge
import requests
import sys
import shutil
from pdfmerge import pdfmerge
from seatable_api import Base, context
  
api_token = context.api_token
server_url = context.server_url

TABLE_NAME = "Table1"
FILE_COLUMN = "PDF Files"
RESULT_COLUMN = "Merged Files"

base = Base(api_token, server_url)
base.auth()

for row in base.list_rows(TABLE_NAME):
    if row.get(FILE_COLUMN) is None:
        continue

    files = [file['url'] for file in row[FILE_COLUMN]]
    assert len(files) == 2

    filenames = ['file-1.pdf', 'file-2.pdf']

    base.download_file(files[0], filenames[0])
    base.download_file(files[1], filenames[1])
    print('Downloaded 2 files')

    # Merge
    output_filename = f'output-{row["_id"]}.pdf'
    pdfmerge(filenames, output_filename)
    print('Merged PDF files')
    
    # Upload file + store URL in base
    info_dict = base.upload_local_file(output_filename, name=None, file_type='file', replace=True)
    base.update_row(TABLE_NAME, row['_id'], {RESULT_COLUMN: [info_dict]})
    print('Uploaded PDF file')

HEIC -> PNG

import requests
from PIL import Image
from pillow_heif import register_heif_opener
from seatable_api import Base, context

# Register plugin
register_heif_opener()

api_token = context.api_token
server_url = context.server_url

base = Base(api_token, server_url)
base.auth() 

for row in base.list_rows('Table1'):
    if row.get('HEIC') is None:
        continue

    filename_heic = 'image.heic'
    filename_png = f'image-{row["_id"]}.png'

    url = row.get('HEIC')[0]
    base.download_file(url, filename_heic)

    im = Image.open(filename_heic)
    im.save(filename_png, quality=90)
    print('Saved image')
    
    info_dict = base.upload_local_file(filename_png, name=None, file_type='image', replace=True)
    print('Uploaded file')
    
    img_url = info_dict.get('url')
    base.update_row('Table1', row['_id'], {'PNG': [img_url]})
    print('Stored image info in base')

@simonhammes simonhammes changed the title Draft: Add pdfmerge + pillow-heif Add pdfmerge + pillow-heif Oct 23, 2024
@christophdb christophdb merged commit a5d6e88 into main Oct 24, 2024
4 checks passed
@christophdb christophdb deleted the add-packages branch October 24, 2024 10:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants