Jak mogę utworzyć wszystkie strony w formacie PDF w tym samym rozmiarze?

4

Mam plik pdf o różnych rozmiarach stron. Pierwsza strona to 579,275 o 402.547 punktów. Pozostałe strony to 612 przez 792 pkt. Chciałbym, aby wszystkie strony miały rozmiar literowy. Wyjście z pdfinfo -box -f 1 -l 10 A.pdf jest:

$ pdfinfo -box -f 1 -l 10 A.pdf 
Creator:        Toolkit http://www.activepdf.com
Producer:       Toolkit http://www.activepdf.com
CreationDate:   Sat Feb  4 18:42:49 2012
ModDate:        Sat Feb  4 18:42:49 2012
Tagged:         no
Form:           AcroForm
Pages:          5
Encrypted:      no
Page    1 size: 579.275 x 402.547 pts
Page    1 rot:  0
Page    2 size: 612 x 792 pts (letter)
Page    2 rot:  0
Page    3 size: 612 x 792 pts (letter)
Page    3 rot:  0
Page    4 size: 612 x 792 pts (letter)
Page    4 rot:  0
Page    5 size: 612 x 792 pts (letter)
Page    5 rot:  0
Page    1 MediaBox:     0.00     0.00   612.00   792.00
Page    1 CropBox:     15.05   374.40   594.33   776.94
Page    1 BleedBox:    15.05   374.40   594.33   776.94
Page    1 TrimBox:     15.05   374.40   594.33   776.94
Page    1 ArtBox:      15.05   374.40   594.33   776.94
Page    2 MediaBox:     0.00     0.00   612.00   792.00
Page    2 CropBox:      0.00     0.00   612.00   792.00
Page    2 BleedBox:     0.00     0.00   612.00   792.00
Page    2 TrimBox:      0.00     0.00   612.00   792.00
Page    2 ArtBox:       0.00     0.00   612.00   792.00
...
File size:      211688 bytes
Optimized:      no
PDF version:    1.3

Próbowałem wielu odmian polecenia ghostscript z flagami -sPAPERSIZE, -dFIXEDMEDIA, -dPDFFitPage. Nie wiem, jak zdobyć pierwszą stronę jako list. Nie obchodzi mnie, czy zawartość pierwszej strony jest powiększana.

Pytanie: Jak mogę zrobić wszystkie strony o tym samym rozmiarze?

Powodem tego pytania jest to, że mamy nową drukarkę w biurze. Z powodów, które nie do końca rozumiem, nowsze wersje CUPS lub ghostscript powodują awarię serwera druku. Mamy możliwość drukowania z urządzenia pamięci masowej USB, ale drukarka nie akceptuje dokumentów o rozmiarach stron innych niż litera.

nwhsvc
źródło

Odpowiedzi:

2

Wyjście twojego pdfinfo polecenie wyraźnie to pokazuje wszystko Twoje strony mają ten sam rozmiar: 612 x 792 pt („MediaBox”), czyli rozmiar „litery”.

Jednak strona 1 jest ustawiona tak, aby poinformować przeglądarkę PDF (i drukarkę) o wyświetleniu tylko części obszaru strony („CropBox”).

Jeśli usuniesz ustawienia CropBox (jak również Art, Bleed i TrimBox) w swoim pliku PDF za pomocą wybranego narzędzia (nawet edytora tekstu) lub jeśli zmienisz je na te same wartości, co MediaBox, będziesz miał przeglądarkę plików PDF (i drukarek) pokazującą pełną zawartość strony (nawet jeśli „reszta” to tylko białe marginesy). Uwaga: może się zdarzyć, że na pierwszej stronie jest ukryta zawartość, która staje się widoczna po usunięciu pól Crop-, Trim-, Bleed- i ArtBox.

Kurt Pfeifle
źródło
Dziękujemy za wskazanie tego! Mogłem zmienić ustawienie cropbox, edytując bezpośrednio plik pdf. Nie mogę jednak zrozumieć, jak to zrobić za pomocą ghostscript. Czy możesz polecić polecenie lub inne narzędzie?
nwhsvc
1

Możesz np. posługiwać się Pdftk aby podzielić dokument na stronę główną i część o prawidłowym rozmiarze, a następnie zmień rozmiar strony głównej za pomocą np. GhostScript, jak już próbowałeś, i ostatecznie scal dokument ponownie z Pdftk. Można to napisać skryptem, jeśli jest to typowa operacja, którą należy wykonać.

Zobacz także https://stackoverflow.com/questions/547326/using-imagemagick-or-ghostscript-or-something-to-scale-pdf-to-fit-page po więcej wskazówek.

Daniel Andersson
źródło
To nie działało na oryginalnym pliku PDF! Udało mi się jednak skalować kolejny jednostronicowy plik PDF za pomocą obu -dFIXEDMEDIA i -dPDFFitPage. Czy istnieje powód, dla którego ghostscript nie skaluje określonego pliku PDF? Również, pdftk wyprodukował plik pdf, który spowodował, że ghostscript dał następujące ostrzeżenie: „Ostrzeżenie: uznanie„ 0000000000 XXXXX n ”za wolny wpis”.
nwhsvc