--
Piotr Chamera
To może jakiś "batch processing" edytorem TXT ?
robin
--
Skrypty do AdobeFamily
www.adobescripts.pl
gg 3753393
tlen robinet
Skype: AdobeScripts
OT - prywata
In Design Scripts - dzieki za rade co do monitora (pare watkow nizej),
tez na to wpadlem ale nie bardzo chce sie prosic znajomych ;)
pozdr
Piotr
ale on chce "poprawić" pliki - czyli przeedytować - zmienić wymiar
i jeżeli już - to bardziej przydatny byłby mój skrypt, który pozwala zaimportować PDF'a do ramek o określonej wielkości - a nie tylko 1:1 ;)
> OT - prywata
> In Design Scripts - dzieki za rade co do monitora (pare watkow nizej),
> tez na to wpadlem ale nie bardzo chce sie prosic znajomych ;)
;)
zainteresuj się też BATCH PROCESSING w Acrobacie
I to był pomysł na wagę złota - napisałem prosty skrypt - zaimportowałem
każdy plik do ID, odczytałem rzeczywiste wymiary rysunku i zapisałem
do pliku pdf nowy „mediaBox” - chyba działa dobrze ale muszę jeszcze
przetestować czy zapisywane pdf-y są ok.
Poniżej skrypt, gdyby kogoś interesowało, jak można coś takiego zrobić
(napisany na szybko, nie sprawdza błędów, nie ustawia wszystkich
potrzebnych parametrów - bazuje na ustawieniach domyślnych importu pdf).
Napisany jest w języku Python, korzysta z dwóch bibliotek: win32com do
komunikacji z InDesignem i pyPdf do modyfikacji pliku pdf.
import os
import win32com.client
from pyPdf import PdfFileWriter, PdfFileReader
#parametry skryptu
directory = r"D:\prace\sciezka\rys\\"
files = os.listdir(directory)
margin = 1
indesign = win32com.client.Dispatch("Indesign.Application")
doc = indesign.Documents.Add()
indesign.PDFPlacePreferences.PageNumber = 1
#import pdf and change pdf box for all files
page = doc.Pages[0]
for i in range(0, len(files)):
# import pdf file and place on page
page.Place(directory + files[i])
# read height of placed graphics
item = page.AllPageItems.FirstItem()
height = item.GeometricBounds[2]
# delete imported graphics
item.Delete()
# read pdf
input = PdfFileReader(file(directory + files[i], "rb"))
# add page from input, but crop it to height + 2 * margin
pg = input.getPage(0)
box_height = pg.mediaBox.getUpperRight_y()
box_width = pg.mediaBox.getUpperRight_x()
scale = box_height / 85
margin_to_remove = (85 - (height + 2 * margin)) / 2 * scale
# build new box
upperRight = (box_width, box_height - margin_to_remove)
lowerLeft = (0, margin_to_remove)
# update boxes
pg.mediaBox.upperRight = upperRight
pg.mediaBox.lowerLeft = lowerLeft
# save output
output = PdfFileWriter()
output.addPage(pg)
outputStream = file(directory + "cropped" + files[i], "wb")
output.write(outputStream)
outputStream.close()
-----
> zainteresuj sie tez BATCH PROCESSING w Acrobacie
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/