2012-01-25 31 views
11

Zastanawiam się, czy w Delphi było łatwe generowanie miniatur plików PDF. Zasadniczo chcę renderować pierwszą stronę pliku PDF do małej bitmapy (powiedzmy 100x100 lub podobnej).
Widzę dwie opcje 1 użyć komponentu PDF, 2 jakoś wykorzystać jak odkrywca generuje podglądy/miniatury.PDF miniatury w Delphi

Odpowiedz

1

można znaleźć listę zainstalowanych koparki Preview (w Vista i Windows 7) Zgodnie HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ PreviewHandlers.

Jeśli zainstalowano jakąkolwiek procedurę obsługi plików PDF (np. Gdy zainstalowany jest Acrobat Reader), można wyszukać serwer COM, wyszukując znaleziony wcześniej identyfikator GUID. To w połączeniu z interfejsem IPreviewHandler może poprowadzić Cię do rozwiązania.

+1

Wygląda na to, że kopiarki podglądu znajdują się w tej samej lokalizacji na XP. – Alister

11

Korzystanie z biblioteki takiej jak QuickPDF lub Gnostice jest naprawdę najłatwiejszą opcją. Jestem prawie pewien, że miniatury PDF w eksploratorze są faktycznie generowane przez dowolne oprogramowanie PDF, takie jak Adobe. O ile nie można zagwarantować, że odpowiedni czytnik PDF jest zainstalowany na każdej stacji roboczej, pomysł korzystania z miniatur może być nieważny.

Edytuj: Oto kompletna aplikacja wykorzystująca QuickPDF do renderowania pierwszej strony danego pliku PDF do pliku BMP. Przy rozdzielczości 10 DPI mój wyjściowy plik BMP ma 85 pikseli szerokości i 110 pikseli wysokości.

program PDFToBMP; 
{$APPTYPE CONSOLE} 
uses 
    SysUtils, QuickPDF; 
var 
    Q : TQuickPDF; 
begin 
    Q := TQuickPDF.Create; 
    try 
    Q.LoadFromFile(ParamStr(1), ''); 
    Q.RenderPageToFile(10 {DPI}, 1 {PageNumber}, 0 {0=BMP}, ChangeFileExt(ParamStr(1),'.bmp')); 
    finally 
    Q.Free; 
    end; 
end. 
1

Lub jeśli masz „czas” może spróbować użyć GhostScript poprzez linię poleceń lub embedding it. Mike W. dał ci dobre i łatwe rozwiązanie. Używam Gnostice, ale istnieje wiele innych rozwiązań VCL w PDF.