Pdf.js: Kesalahan saat memuat PDF yang menggunakan font sistem

Dibuat pada 4 Feb 2014  ·  27Komentar  ·  Sumber: mozilla/pdf.js

File tes: https://dl.dropboxusercontent.com/u/16283445/PORTRAIT.pdf

File diproduksi oleh konverter PDF Muhimbi.

Teks utama (yang menggunakan font Tahoma tertanam) dirender ok; itu adalah pesan percobaan di atas file yang menyebabkan kesalahan. Setelah beberapa debugging, saya menemukan bahwa pesan ini mereferensikan font Helvetica sistem, dan entah bagaimana mesin terbangnya hilang pada saat kesalahan.

Catatan eror:

Error: Requesting object that isn't resolved yet Helvetica_path_T pdf.js:205
    at error (http://[skipped]/pdfjs/pdf.js:207:15)
    at Object.PDFObjects_get [as get] (http://[skipped]/pdfjs/pdf.js:4640:9)
    at Object.FontFace.getPathGenerator (http://[skipped]/pdfjs/pdf.js:7675:23)
    at Object.CanvasGraphics.paintChar (http://[skipped]/pdfjs/pdf.js:6105:26)
    at Object.CanvasGraphics_showText [as showText] (http://[skipped]/pdfjs/pdf.js:6291:18)
    at Object.CanvasGraphics_nextLineShowText [as nextLineShowText] (http://[skipped]/pdfjs/pdf.js:6381:12)
    at Object.CanvasGraphics_executeOperatorList [as executeOperatorList] (http://[skipped]/pdfjs/pdf.js:5600:22)
    at Object.InternalRenderTask__next [as _next] (http://[skipped]/pdfjs/pdf.js:4807:39)
    at Object.pdfViewcContinueCallback [as continueCallback] (http://[skipped]/pdfjs/viewer.js:4261:9)
3-pdf-broken 4-font-conversion

Komentar yang paling membantu

dengan pdfjs-dist": "^2.2.2 set disableFontFace: false memperbaiki masalah ini pada saya.

pdfjs.getDocument( { url: pdfUrl, disableFontFace: false, }

Semua 27 komentar

Ini gagal karena font tidak dimuat saat kami mencoba mengambilnya di font_loader.js#L313 .
Masalahnya tampaknya tidak pernah benar-benar dimuat sama sekali, mengingat evaluator.js#L284 , karena font.data tidak ditentukan dalam kasus ini. Alasan untuk ini adalah bahwa font yang dimaksud tidak memiliki file font yang disematkan, yang berarti bahwa di fonts.js kita kembali sebelum mendefinisikan font.data . Lihat fonts.js#L2256 dan fonts.js#L2303 .
Alasan mengapa ini bukan masalah yang lebih besar dalam praktik bagi kami, adalah karena hal itu tampaknya hanya memengaruhi PDF (seperti masalah ini) di mana sumber daya font terdapat di dalamnya, misalnya kamus XObject .

Sayangnya saya tidak tahu bagaimana kami bisa mengatasi masalah ini, karena membangun font.data tanpa file font tampaknya sulit dalam kode saat ini. Mungkin ini akan diselesaikan "gratis" jika kami menyematkan font standar di PDF.js?

PS Saya juga memperhatikan bahwa memperbaiki masalah ini akan mengatasi satu (atau dua) file yang terdaftar di http://bthorben.github.io/pdfRepo/#crashed.

Bisakah ada solusi seperti salah satu dari ini:

1 - opsi untuk mengizinkan penggunaan beberapa font default atau font apa yang sudah digunakan untuk file yang tepat
2 - opsi untuk memungkinkan melewatkan rendering item ini
ini dapat membantu untuk terus bekerja dengan file pdf jika beberapa font tidak ada, dan output hanya sebagai peringatan, bukan sebagai kesalahan pemutusan.

Bagaimana menurut anda?

Kami lebih suka opsi pertama, namun kami belum menyematkan font apa pun dan mengandalkan sistem untuk memuatnya untuk beberapa fungsi. Kami tentu saja dapat mengabaikannya, setelah kami menemukan cara mematikannya dengan benar (Untuk font ini, kami dapat menghasilkan garis huruf kosong saat diminta)

Setidaknya buka kemungkinan untuk .catch(...) kesalahan ini alih-alih hanya menghentikan semuanya sampai Anda dapat menemukan solusi yang lebih baik. Sayangnya masalah ini merusak fungsionalitas di lingkungan hidup kita yang ... buruk.

Apakah ada solusi yang tersedia? Atau semacam mekanisme penangkapan kesalahan yang disarankan oleh @xwcg ?

Sebuah penipuan diajukan di sini: https://bugzilla.mozilla.org/show_bug.cgi?id=1463728

Halo semuanya,
Saya mendapatkan kesalahan yang sama.
Bolehkah saya tahu jika ada solusi sementara untuk masalah ini sebelum perbaikan formal?

Adakah pembaruan tentang ini?, Ini dari 2014 dan masih belum terpecahkan

@diego-lipinski-de-castro FYI, penggabungan #9809 itu memperbaikinya jika Anda memasukkan abaikanErrors: true ke fungsi getDocument. Jika Anda menggunakan npm pdfjs-dist itu belum diperbarui. Saya baru saja membuat dari sumber dan PDF yang dulu mengeluh tentang font sekarang memproses dengan benar dengan keluaran kanvas. Semuanya tampak baik-baik saja.

@sirisian terima kasih atas pembaruan Anda. Nantikan rilisnya

@sirisian apakah Anda tahu kapan akan ada pembaruan untuk npm pdfjs-dist? dan jika ada solusi untuk npm?
Terima kasih

Adakah pembaruan pada rilis perbaikan ini untuk npm pdfjs-dist ?

Hai, saya juga mengalami kesalahan ini. Apakah ada cara untuk mengganti font yang tidak ada di sistem dengan font default?

Hai @timvandermeij kapan kami akan melihat perbaikan ini di pdfjs-dist ?

dengan pdfjs-dist": "^2.2.2 set disableFontFace: false memperbaiki masalah ini pada saya.

pdfjs.getDocument( { url: pdfUrl, disableFontFace: false, }

Menurut pendapat saya, setiap kali pdf.js gagal memuat teks dalam font tertentu, itu harus memuat teks yang sama menggunakan font pengganti yang _bisa_ ditampilkan (misalnya, font default yang ditetapkan oleh pengguna dalam preferensi font), daripada berhenti rendering halaman dan melempar kesalahan. Ini adalah perilaku di Firefox 61 dan sebelumnya ketika opsi "Izinkan halaman untuk memilih font mereka sendiri, bukan pilihan Anda di atas" dinonaktifkan. Menurut pendapat saya, menampilkan teks dalam font pengganti lebih baik daripada tidak menampilkan sama sekali.

dengan pdfjs-dist": "^2.2.2 set disableFontFace: false memperbaiki masalah ini pada saya.

pdfjs.getDocument( { url: pdfUrl, disableFontFace: false, }

Yang ini memecahkan masalah saya, saya menggunakan pdfjs-dist ^2.0.943
Terima kasih

Saya sedang mengerjakan proyek di mana IE 11 adalah persyaratan dan pengaturan keamanan (dikelola oleh tim TI) tidak mengizinkan font khusus untuk diunduh. Ini menghasilkan rendering PDF yang sebagian besar kosong saat rendering, hanya menampilkan beberapa judul dan karakter miring.

pengaturan disableFontFace: true menyebabkan kebalikan di IE 11 (dan semua browser lain sebenarnya). Sebagian besar font kemudian dirender tetapi memperkenalkan kesalahan litani seperti yang terlihat seperti ini:

Warning: getPathGenerator - ignoring character: "Error: Requesting object that isn't resolved yet Times_path_i.".

Semua kesalahan menunjukkan karakter yang berbeda di bagian Times_path_* dari pesan. Dokumen memuat sebagian besar konten tetapi judul, miring, dan variasi lainnya hilang secara visual (meskipun teks kosong dapat dipilih karena lapisan teks transparan di atas)

Jadi, saya terjebak antara memiliki rendering font penuh di semua browser kecuali versi IE 11 yang dikelola ini (karena pengaturan keamanan yang diberlakukan administrator terkait font) atau rendering font semi-rusak di mana-mana karena mencoba menerapkan perbaikan untuk IE 11.

Ada saran?

ada berita tentang itu?

Hai tim,
Saya mencoba semua hal yang mungkin, tidak ada yang bisa menyelesaikan bug.
memiliki pembaruan?

Ini adalah dampak besar bagi kami. Mengapa solusi untuk mengatur disableFontFace=false? Pemahaman saya adalah bahwa dengan disableFontFace=true, tidak masalah font yang disematkan apa (atau tidak) di pdf. Apakah itu salah?

ada berita tentang itu?

6 tahun yang lalu @AllSeeingEye mengalami masalah dan hari ini perpustakaan ini memiliki 594 masalah yang belum terselesaikan. Tidak ada yang memberi af * tentang bug ini atau apa? Bug yang bagi saya tidak boleh digunakan, perlu mencari lib lain seperti pdf-lib mungkin.

Selamat siang semuanya!

Menghadapi beberapa masalah serupa saat mencoba menyelesaikan masalah render lapisan teks dengan params disableFontFace .

Pada disableFontFace: false beberapa dokumen terlihat seperti ini:
image

Saat di disableFontFace: true dokumen sebelumnya ditampilkan dengan baik, ada masalah dengan dokumen yang berbeda:
image

Semua sel ini tidak kosong.
Beberapa dokumen ditampilkan dengan baik dalam satu cara, beberapa - dengan cara lain.
Bagaimana saya harus bertindak?

Saya mengalami masalah yang sama dengan @Hatgor
Apakah ada perbaikan atau sesuatu yang dapat dilakukan untuk memperbaikinya? Solusi di atas tidak berfungsi. :|

Saya mengalami masalah yang sama persis. Mencoba menjalankannya di lambda di Node12, yang menjalankan amazonlinux2 - artinya tidak ada font yang diinstal secara default. Akan sangat bagus jika kita dapat menyematkan 14 font standar ke dalam pdfjs secara default, atau mengekspos API untuk memuatnya daripada mengandalkannya untuk diinstal di sistem dasar. Sejauh ini upaya saya untuk menginstal font ke sistem telah... kurang berhasil.

Pada titik ini saya berpikir saya mungkin melakukan pra-proses setiap PDF dengan perpustakaan lain, seperti pdf-lib, secara eksplisit untuk menyematkan 14 font standar, LALU meneruskannya ke perpustakaan ini untuk rendering. Sedikit berlebihan dan menjengkelkan, tapi jika itu menyelesaikan masalah....

Setelah bermain-main selama berjam-jam dengan amazonlinux2 untuk menginstal font, SAYA BISA membuat font yang tidak disertakan untuk dirender dengan mengatur disableFontFace ke false secara eksplisit, tetapi kemudian font yang disematkan dari PDF gagal dengan simbol yang sama terlihat di komentar @Hatgor .

Oke, sejauh ini tidak ada masalah dalam pra-pemrosesan PDF untuk menyematkan font. Apakah ada, mungkin, cara untuk menyuntikkan font yang tidak tertanam dalam PDF? Saya dapat meng-host .ttf(s) yang diperlukan di tempat lain, tetapi saya tidak melihat apa pun di API untuk memuat font arbitrer.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

SehyunPark picture SehyunPark  ·  3Komentar

liuzhen2008 picture liuzhen2008  ·  4Komentar

anggikolo11 picture anggikolo11  ·  3Komentar

brandonros picture brandonros  ·  3Komentar

hp011235 picture hp011235  ·  4Komentar