Podążyłem za następującym przykładem, aby wyświetlić pdf in my App (Xamarin.iOS). Wszystko działało dobrze, aż do niedawna zauważyłem, że niektóre pliki PDF nie mogą być odczytane przy użyciu tej metody.CGPDFDocument nie może odczytać pdf
otworzyć i dostaje informacje na mój mac i zauważyłem następujące:
- gdybym eksportowania dokumentu do formatu PDF za pomocą przeglądarki Mac można odczytać tylko w porządku, ale rozmiar jest wzrost.
- Jeśli spróbuję otworzyć plik w obecnym stanie, nic nie będzie widoczne, ale biała strona.
- Dzieje się tak tylko w mojej aplikacji na iOS, przeglądarka na moim Androidzie działa dobrze.
Mogę eksportować każdy plik do formatu pdf przy użyciu przeglądarki Mac, ale jest to dodatkowy krok niż to, czego potrzebuję. Co mogę zrobić, aby to naprawić?
Oryginalne kodowanie: PDFScanLib v1.2.2 w Adobe Acrobat 01.10.16
kodowania Export: Mac OS X 10.10.5 Quartz PDFContext
pobiegłem dodatkowe testy do programu i mogę stwierdzić, Problem dotyczy kompresji wykorzystywanej w plikach pdf. Czy istnieje sposób, w jaki program CGPDFDocument może usunąć kompresję lub ją zignorować, aby wyświetlić plik pdf? Przesyłam plik pdf do mojego mobilnego backendu, w którym dzielę strony. Używam Pdfsharp do wykonania tego, jeśli to możliwe, istnieje sposób na wyczyszczenie plików przed zapisaniem na serwerze? (Ten problem dotyczy tylko wersji mojej aplikacji na iOS).
Po dodatkowym testów doszedłem po drugiej następującym błędem: Here Pojawi się ona kompresji JBIG2 używany jest znany błąd, który powoduje błędy podczas czytania jpg na pdf. (Będę kontynuować dalszych badań, aż znajdę rozwiązanie.)
Korekty: Kompresja PDF nie jest JBIG2, ale FlateDecode. Po przetestowaniu i odczytaniu danych binarnych zauważyłem, że zarówno oryginał, jak i eksport mają ten sam typ kompresji. (Aktualizacja zostanie zaktualizowana o więcej informacji, gdy spróbuję to rozgryźć.)
To brzmi jak bug iOS (lub ograniczenie) i niezwiązane z Xamarinem. Edytowałem znaczniki, aby więcej osób mogło je zobaczyć (i powinieneś uzyskać lepszą zmianę, aby uzyskać odpowiedzi). – poupou
Zakładam, że było to ograniczenie przeniesienia kodu na Xamarin, ale możesz mieć rację. Używam 5 różnych sposobów czytania pdf (pdfsharp to split, chrome to view, safari aby zobaczyć i do cholery nawet normalna poczta w iPhone'ie działa dla oryginału). Nie wiem, z czym związany jest prawdziwy błąd. – ScarletMerlin