Dużo szukałem tego, ale nie mogłem znaleźć rozwiązania.
Jak mogę wygenerować plik PDF w dowolnym formacie papierowym (powiedzmy A4) i wypełnić jego strony jak największą liczbą kopii obrazu?
Szukam rozwiązania CLI, używając programów takich jak ImageMagick, Poppler, Ghostscript i tym podobnych.
Mój przypadek użycia: zmieniłem hasło dla gości Wi-Fi w moim biurze, chciałem wysłać wokół ładnego A4 PDF składającego się z ciasnej siatki, każda komórka zawierała SSID sieci i klucz WPA, do wydrukowania, pocięcia na rozdane części dla gości odwiedzających.
Nie mogłem znaleźć sposobu, aby to zrobić i postanowiłem ręcznie wkleić małe obrazy na stronie za pomocą MS Word.
EDYCJA: jak wyglądały te małe obrazy. Wystarczy wpisać do edytora tekstu i zrobić zrzut ekranu z tekstem.
Będę zmieniać to hasło co 3 miesiące, więc chciałbym mieć rozwiązanie automatyczne / skryptowalne. Nie musi być idealny, ale musi być szybki.
montage
niektórymi opcjami, a obrazy były rozmyte, więc przeszedłem do innych metod. Nie zmniejszyłem również rozmiaru oryginalnego pliku, aby go pomniejszyć, aby zobaczyć, jak dopasować więcej mniejszych obrazów do jednego arkusza, ale zakładam, że będzie to wystarczające, aby zapewnić podstawowy punkt początkowy, co najmniej, aby zachęcić Cię do pracy nad automatyzacją skrypt i tym podobne do twojego zadania.Możesz to zrobić za pomocą Pandoc i wygenerować plik PDF.
Pierwsza metoda: wklej 1 linię tekstu do Markdown, a nie obrazy do MS Word
Zamiast wklejać obraz do dokumentu MS Word, możesz również wkleić ten wiersz do pliku tekstowego, który nazwiesz
my-markdown.md
:To dałoby 3 obrazy w rzędzie. Oczywiście możesz zmodyfikować szerokość do dowolnej wartości, którą chcesz. Domyślam się, że można zrobić z 60 identycznymi liniami przy użyciu
width="33%"
i 112 identycznymi liniami przy użyciuwidth="24%"
(4 obrazy na wiersz).Ponieważ chciałeś mieć „dowolne formaty papieru (powiedzmy A4)” , podam ci prawie A4 przykład. Musisz przekonwertować go na format PDF w następujący sposób:
Zrzut ekranu:
Druga metoda: zrób to wszystko w jednym wierszu poleceń
Ponieważ nie mam obecnie dostępnego systemu Windows, dlatego mogę potwierdzić i przetestować za pomocą
Powershell
lubcmd.exe
, podam przykład Bash dla systemu Linux / macOS:Pierwsza część powyżej zapisuje ten sam wiersz 112 razy
<stdout>
, ale przesyła go do Pandoc w<stdin>
celu dalszego przetwarzania bez zapisywania pliku Markdown.źródło