2009-08-04 17 views
9

Potrzebuję szybkiej biblioteki kompresji PDF dla .NET, która pozwoli mi uruchomić 10 równoczesnych wątków, z których każdy kompresuje oddzielny plik PDF do około 10% jego pierwotnego rozmiaru. Jakieś sugestie? (Mam już wypróbowany produkt od neeviaPDF.com, nie jest tak szybki, jak tego potrzebuję.)Szybka biblioteka kompresji PDF dla .NET

+0

Czy można nawet skompresować plik PDF bez strat? :( –

Odpowiedz

2

Strona internetowa firmy pokazuje trzy przykłady - jeden kompresuje plik PDF z 9,1 do 133 KB. Otwieranie ich za pomocą Notatnika pokazuje pojedynczy 2500x3000, głównie czarny obraz skompresowany przy pomocy FlateDecode przekonwertowany na obraz o tym samym rozmiarze skompresowany z JPEG2000. Ten rodzaj współczynnika kompresji jest prawdopodobnie najlepszym scenariuszem. Pozostałe dwa przykłady są bardziej uzasadnione; 741kb do 349kb i 940kb do 804kb. Zawierają również zrzut ekranu ustawień; jeden sprawdzony we wszystkich trzech przykładach zawiera ostrzeżenie: "BARDZO SLOW !!!" Wygląda jednak na dobry produkt. Robi wszystkie właściwe rzeczy, w tym optymalizację sieci.

10% oryginału jest mało prawdopodobne, chyba że treść Twoich plików PDF jest znana z wyprzedzeniem, zawiera dużo obrazów i ręcznie kroisz rozwiązanie za pomocą iTextSharp, aby wykorzystać sposób, w jaki pliki PDF są ze sobą połączone.

Jeśli podoba Ci się sposób, w jaki komponent działa, a nie jest bezpieczny dla wątków, dlaczego nie wystarczy utworzyć z nim 10 oddzielnych procesów? Jeśli masz dużo dużych obrazów, uważaj na błędy braku pamięci.

0

Spróbuj PDFshrink firmy Apago PDF. Jest to produkt komercyjny i obsługuje kompresję PDF przy użyciu wielordzeniowych procesorów.

0

Morovia's PDFLeo potrafi skompresować PDF w małym rozmiarze. Wykorzystuje dwie główne techniki - kompresję strumienia danych i strumienie obiektów. Zgodnie z jego manual:

  • Usuwanie nieużywanych obiektów. Nieużywane obiekty zostaną odrzucone. Jeśli plik PDF jest tworzony przy okazji aktualizacji przyrostowej, wiele obiektów nie jest potrzebnych. Aktualizacja przyrostowa to funkcja umożliwiająca aplikacji przetwarzania do dołączanie zmian na końcu pliku bez usuwania wcześniejszych definicji obiektu . Technika ta zmniejsza zużycie pamięci kosztem większego rozmiaru pliku: .
  • Pisanie obiektów w zwartej składni. PDFLeo zapisuje dane wyjściowe za pomocą składni kompaktowej. Dodatkowe białe spacje są usuwane. Łańcuchy szesnastkowe są zapisywane z bardziej kompaktowymi reprezentacjami binarnymi .
  • Strumienie skompresowane. Po określeniu, pdfleo kompresuje wszystkie strumienie z wyjątkiem tych, które muszą pozostać nienaruszone.
  • Strumienie obiektów. Non obiekty strumieniowe można umieścić w strumieniu obiektów specjalnych i skompresować .