Z czystej ciekawości, po obejrzeniu najmniejszego GIF-a , jaki jest najmniejszy możliwy prawidłowy plik PDF?
pdf
optimization
pdf-generation
siatkowaty
źródło
źródło
Odpowiedzi:
To ciekawy problem. Biorąc to pod uwagę, możesz zacząć od tego:
co daje 291 bajtów radości PDF. Acrobat go otwiera, ale trochę narzeka. Jest w nim jedna strona i ma kwadrat 3/72 cala, minimum dozwolone przez specyfikację.
Jednak Acrobat X nawet nie zawraca sobie głowy tabelą odniesień, więc możemy to usunąć:
Acrobat narzeka, ale go otwiera. Teraz mamy 178 bajtów. Okazuje się, że nie potrzebujesz tego / Rozmiar w przyczepie. Teraz mamy 172:
Okazuje się, że nie potrzebujesz wszystkich tych nieznośnych elementów / Type w swoich słownikach:
Teraz mamy 138 bajtów.
Okazuje się również, że kiedy specyfikacja mówi "będzie pośrednim odniesieniem" i / Count jest wymagane, a nagłówek "musi" mieć wartość% PDF-1.0, to robią luźne sugestie. To najmniejszy, jaki mogłem zrobić i który można otworzyć w programie Acrobat X:
70 bajtów.
Teraz mój edytor używa dyscypliny nowego wiersza systemu Windows, ale program Acrobat akceptuje konwencje systemu Windows, Mac lub Unix, więc używając edytora szesnastkowego zastąpiłem \ r \ n \ r i całkowicie usunąłem ostatnią nową linię, co daje mi 67 bajtów
Próbowałem zdjąć ostatni słownik końca (>>), ale Acrobat nie miałby tego. Czytanie PDF wbudowane w Google Chrome (FoxIt) go nie otworzy.
Jako PostScript (HA! Widzisz, co tam zrobiłem?), Jeśli zgadzasz się na „naprawę” pliku przez program Acrobat, zwiększa on do 3550 bajtów, większość z nich to opcjonalne metadane, ale pozostawia kilka wyraźnych naruszeń specyfikacji.
źródło
minimum allowed by the spec
a następnie wykracza poza. Świetna odpowiedź, dziękuję! :)\n
jest w nim osadzona, a kiedy dekodowana w base64 nie daje prawidłowej zawartości pliku.Nie mogłem otworzyć przykładu Hello World.
W przypadku małego pliku z zawartością tekstową:
źródło
Pomyślałem, że utworzę najmniejszy plik PDF z napisem „Hello World”. Tekst znajduje się w lewym dolnym rogu. Przepraszamy za czcionkę 9-punktową, każda większa kosztowałaby dodatkowy bajt :)
172 bajty dla Adobe Reader X (jeśli zapisano z nowymi wierszami tylko do nowego wiersza i bez końcowego znaku nowego wiersza lub bajtu zerowego):
120 bajtów dla wbudowanej przeglądarki PDF w Chrome:
Aby łatwo zobaczyć to w Chrome, wklej ten identyfikator URI w pasku adresu (SO nie pozwoli mi utworzyć linku do niego i nie będzie działać w innych przeglądarkach):
źródło
W Javie użyj tego:
i wtedy
...
źródło