zmieścić wiele stron pdf w jednym

2

Czy w jakiś sposób można „pomniejszyć” wielostronicowy plik PDF, aby dopasować wszystkie strony do jednej za pomocą wiersza polecenia (musi działać w systemie Linux)

np. mam plik PDF wygenerowany przy pomocy XSL: FO / FOP ze stołem (czerwony na zdjęciu), który rozciąga się na 3 strony. Ale chcę, aby rozmiar był automatycznie zmieniany na jedną stronę (patrz prawa strona na zdjęciu) Więc nie chcę „matrycy” stron, tak jak można wybrać przy drukowaniu wielu stron, ale automatycznie zmienić rozmiar

edycja: Jeszcze lepiej byłoby automatycznie dopasować tabelę do jednej strony za pomocą xsl: fo, jeśli to łatwiejsze

[obraz] (http://www.tinyimage.de/jpeg.php?img_id=391137)

stwagner
źródło
1
Czy myślałeś o tym, aby nie używać formatu PDF do drukowania dokumentów?
Daniel Beck
Twoje pytanie jest niejasne. Mówisz, że chcesz dopasować wszystkie strony do jednej fizycznej strony, ale potem mówisz, że nie chcesz „matrycy” stron, takich jak drukowanie 2 lub 4 stron na jednym arkuszu papieru. Więc czego chcesz? Nie rozumiem, jaki ma być wynik.
allquixotic
@ allquixotic: spójrz na zdjęcie (okropne, wiem). Chcę wydrukować wiele stron na jednej stronie, ale poniżej siebie bez obramowań lub
wypełnień
@allquixotic: Wydaje mi się, że chce połączyć tabele z wielu stron w jedną stronę o mniejszym rozmiarze czcionki. Nie jestem pewien, czy można to zrobić
darnir,

Odpowiedzi:

0

Tylko zgadnij ... Spróbuj ustawić rozmiar strony bardzo duży w kierunku pionowym (np. 8,5 "x 33"), aby wszystko mieściło się na jednej stronie. Następnie podczas drukowania możesz wybrać opcję skalowania drukarki, aby uzyskać stronę na jednym arkuszu standardowego papieru. Prawdopodobnie otrzymasz w ten sposób nieczytelny tekst.

[Dodano] Bardziej złożoną metodą byłoby renderowanie dwukrotnie . Raz, aby uzyskać liczbę stron i jeszcze raz, aby uzyskać końcowy wynik na jednej stronie o odpowiednim rozmiarze. Konieczne może być również uwzględnienie rozmiaru nagłówka / stopki podczas obliczania idealnej wysokości strony.

((number-of-pages * (standard-page-height - header-height - footer-height)) + header-height + footer-height)
Chris Nava
źródło
tak, też o tym myślałem: ustawienie wysokości strony w xsl: fo na dużą liczbę i wydrukowanie jej do formatu A4 PDF z „lpr -pPDF -o tabela dopasowania do strony.pdf” działa dobrze - pozostałym problemem jest, że nie wiem, którą wysokość ustawić - patrz moja odpowiedź na odpowiedź @ RedGrittyBrick
stwagner
właśnie odkryłem page-height = "unefinite", który automatycznie dostosowuje wysokość do zawartości - ale to nie jest obsługiwane przez rendery fop, gdy czytam
stwagner
Jeśli możesz ustawić renderowanie dwa razy, uruchom pierwszy jak zwykle i odczytaj liczbę stron z wyniku, a następnie renderuj ponownie z liczbą stron * 11 "(lub cokolwiek innego).
Chris Nava
Konieczne może być zwiększenie złożoności obliczeń w celu uwzględnienia nagłówka / stopki. ((liczba stron * (11 - wysokość nagłówka - wysokość stopki)) + wysokość nagłówka + wysokość stopki)
Chris Nava
0

Nie, narzędzia PDF ogólnego zastosowania (lub PS) (np. Pdftk, psutils) nie oferują tej możliwości - myślę, że z wielu powodów

Większość plików PDF jest tworzona dla stron o stosunku szerokości do wysokości zbliżonym do formatu papieru A4 lub Letter. Samo umieszczenie trzech stron w układzie pionowym pozostawiłoby zbyt duże puste marginesy na lewo i / lub na prawo od tekstu. Występuje także odwrócenie uwagi od powtarzających się nagłówków i stopek. Ponieważ PDF jest ostatecznym formatem opartym na rysowaniu określonych kształtów na określonych współrzędnych, nie można ponownie przepływać tekstu i innych obiektów w dowolnych plikach PDF.

Czy możesz ustawić narzędzia tak, aby używały mniejszego rozmiaru czcionki?

RedGrittyBrick
źródło
bo nie teraz, jak długo tabela będzie - mogę odgadnąć lub obliczyć wysokość używając liczbę znaków i wierszy używanych, ale byłoby to bardzo zawodne rozwiązanie myślę
stwagner
PDF jest nieodpowiednim formatem do tego celu, użyj HTML lub innego formatu nie zorientowanego na strony. Być może XML + XSL - myślę, że większość przeglądarek obsługuje XSL.
RedGrittyBrick,
niestety ostatecznie musi to być plik PDF - bez osoby drukującej go do pliku PDF za pośrednictwem przeglądarki. Obecnie używam wkhtmltopdf z autozoomingiem z javascript, ale to wytworzyło bardzo źle wyglądające pliki PDF (np. Cienkie ramki są już zniszczone lub nie są wyświetlane)
stwagner
0

Nie ... o ile wiem, nie możesz osiągnąć tego, czego szukasz.

Chcesz czytać i scalać tabele w jeden arkusz.

Czasami jednak aplikacja pozwoli ci stworzyć to, czego szukasz. Sprawdź właściwości drukowania, układ strony itp. Tego rodzaju opcje. Nie wiem dużo o XSL, więc nie mogę komentować, jeśli to możliwe. Jednak ostatnio zrobiłem dokładnie to, o co prosisz z LibreOffice Calc i MS Excel. Jednak nie jest to zalecane.

darnir
źródło