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.
Lingkungan Hidup
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!
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.
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