Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Kadrowanie plików pdf - czym?

341 views
Skip to first unread message

Piotr Chamera

unread,
Jan 5, 2011, 1:28:07 PM1/5/11
to
Witam
Możecie polecić jakieś narzędzie do automatycznego kadrowania plików
pdf? Muszę usunąć marginesy (górny i dolny) z kilkuset rysunków -
najlepiej bez ruszania zawartości pliku, tylko zmiana „pudełka”.

--
Piotr Chamera

InDesign Scripts

unread,
Jan 5, 2011, 2:39:34 PM1/5/11
to
> Możecie polecić jakieś narzędzie do automatycznego kadrowania plików
> pdf? Muszę usunąć marginesy (górny i dolny) z kilkuset rysunków -
> najlepiej bez ruszania zawartości pliku, tylko zmiana „pudełka”.

To może jakiś "batch processing" edytorem TXT ?

robin

--
Skrypty do AdobeFamily
www.adobescripts.pl
gg 3753393
tlen robinet
Skype: AdobeScripts

Piotr Molski

unread,
Jan 5, 2011, 5:01:10 PM1/5/11
to
Hmm, 20% szans - nie da sie zaimportowac automatem (pdfPMP.exe) do
Indesigna plikow z ustawieniem kadrowania do rysunku? W ramach
rozpaczy sprawdzilybm ta opcje.

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

InDesign Scripts

unread,
Jan 5, 2011, 5:38:35 PM1/5/11
to
> Hmm, 20% szans - nie da sie zaimportowac automatem (pdfPMP.exe) do
> Indesigna plikow z ustawieniem kadrowania do rysunku? W ramach
> rozpaczy sprawdzilybm ta opcje.

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 ;)

;)

InDesign Scripts

unread,
Jan 5, 2011, 5:39:00 PM1/5/11
to
> Możecie polecić jakieś narzędzie do automatycznego kadrowania plików
> pdf? Muszę usunąć marginesy (górny i dolny) z kilkuset rysunków -
> najlepiej bez ruszania zawartości pliku, tylko zmiana „pudełka”.

zainteresuj się też BATCH PROCESSING w Acrobacie

Piotr Chamera

unread,
Jan 5, 2011, 7:44:51 PM1/5/11
to
W dniu 2011-01-05 23:01, Piotr Molski pisze:

> Hmm, 20% szans - nie da sie zaimportowac automatem (pdfPMP.exe) do
> Indesigna plikow z ustawieniem kadrowania do rysunku? W ramach
> rozpaczy sprawdzilybm ta opcje.

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()

ąćę

unread,
Mar 23, 2011, 5:39:44 AM3/23/11
to
I dalej po prostu "Crop" z opcjami.


-----

> zainteresuj sie tez BATCH PROCESSING w Acrobacie

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

0 new messages