React-pdf: Perilaku font yang aneh saat mencoba menyorot teks di lapisan anotasi dengan tag tanda.

Dibuat pada 21 Jun 2019  ·  4Komentar  ·  Sumber: wojtekmaj/react-pdf

Deskripsi

Perilaku font yang aneh saat mencoba menyorot teks di lapisan anotasi dengan tag tanda.

Saya menampilkan pdf dalam dialog modal react-bootstrap. Saya mencoba untuk mendapatkan sorotan istilah pencarian di halaman menggunakan prop customTextRenderer dari komponen Halaman. Teks yang disorot ditampilkan dalam font yang berbeda dan tidak tepat di lokasi yang tepat.

Langkah-langkah untuk mereproduksi

Langkah-langkah untuk mereproduksi perilaku:
Kodenya terlihat seperti ini:

<Modal show={this.state.showPDF}

    onHide={this.handleClose} dialogClassName="modal-100w">
    <Modal.Header closeButton>
    </Modal.Header>
    <Modal.Body style={{margin: "auto"}}>
    <Document file={this.state.pdfURL} onLoadSuccess={(page) => this.onDocumentLoadSuccess(page)}>
        <Page  renderMode="svg" scale={1.0} pageNumber={1} customTextRenderer={(textItem) => this.customTextRenderer(textItem)} onLoadSuccess={(page) => this.onPageLoadSuccess(page)} />
        </Document>
    </Modal.Body>
</Modal>

dan customTextRenderer terlihat seperti ini:

return textItem.str
              .split(this.terms[0])
              .reduce((strArray, currentValue, currentIndex) => (
                currentIndex === 0
                  ? ([...strArray, currentValue])
                  : ([...strArray, (
                    // eslint-disable-next-line react/no-array-index-key
                    <mark key={currentIndex}>
                      {this.terms[0]}
                    </mark>
                  ), currentValue])
    ), []);

    }

(saya pikir sebagian besar diambil dari salah satu sampel Anda)

Perilaku yang diharapkan

Pertunjukan teks yang disorot harus di lokasi yang sama dan dengan font yang sama dan di lokasi yang sama.

Informasi tambahan
Saya sudah mencoba dengan svg dan kanvas tetapi melihat perilaku yang sama.

Perilaku yang sama ditemukan di # 189, tetapi saya tidak beruntung dengan solusi apa pun. Saya juga melihat # 212.

Screen Shot 2019-06-21 at 11 33 00 AM

Lingkungan Hidup

  • Browser (jika ada) [mis. Chrome 57, Firefox 59]: Saya telah menguji versi terbaru dari kedua chrome di firefox. Perilakunya buruk pada keduanya.
  • Versi React-PDF [mis. 3.0.4]:
  • Versi React [misalnya 16.3.0]:
  • Versi webpack (jika ada) [mis. 4.16.2]:
question

Komentar yang paling membantu

Itulah yang saya gunakan dalam rangkaian pengujian saya sendiri BTW :) Jangan ragu untuk menyalin dan menempel!

https://github.com/wojtekmaj/react-pdf/blob/5f9a1928a4ce49f97bca2b5d5e68df63c99725c8/test/Test.less#L126 -L132

Semua 4 komentar

Hai,
karena bagaimana PDF ditampilkan, tidak selalu mungkin lapisan teks sama persis dengan teks di bawahnya. Saya minta maaf tentang itu :( Ada banyak trik Mozilla dan saya gunakan untuk menyelaraskan teks ini. Yang bisa saya sarankan adalah menerapkan <mark > mirip dengan cara Mozilla melakukannya, jadi dengan teks transparan , dan latar belakang semi-transparan. Dengan cara ini, teks yang diratakan dengan benar dan dirender dengan benar akan "menyinari" pemilihan.

Aku akan mencobanya. Terima kasih untuk sarannya.

Itulah yang saya gunakan dalam rangkaian pengujian saya sendiri BTW :) Jangan ragu untuk menyalin dan menempel!

https://github.com/wojtekmaj/react-pdf/blob/5f9a1928a4ce49f97bca2b5d5e68df63c99725c8/test/Test.less#L126 -L132

Ini bekerja dengan sempurna. Terima kasih banyak atas sarannya, untuk beberapa alasan belum cukup memikirkan tentang CSS. Dan terima kasih atas pekerjaan Anda di perpustakaan! Senang sekali bisa menggunakannya.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat