React-pdf: سلوك خط غريب عند محاولة تمييز النص في طبقة التعليقات التوضيحية بعلامة العلامة.

تم إنشاؤها على ٢١ يونيو ٢٠١٩  ·  4تعليقات  ·  مصدر: wojtekmaj/react-pdf

وصف

سلوك خط غريب عند محاولة تمييز النص في طبقة التعليقات التوضيحية بعلامة العلامة.

أعرض ملف pdf في مربع حوار مشروط للتمهيد التفاعلي. أحاول إبراز مصطلحات البحث على الصفحة باستخدام خاصية customTextRenderer لمكون الصفحة. يتم تقديم النص المميز بخط مختلف وليس في المكان الصحيح تمامًا.

خطوات التكاثر

خطوات إعادة إنتاج السلوك:
يبدو الرمز كما يلي:

<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>

و customTextRenderer يبدو هكذا:

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])
    ), []);

    }

(أعتقد أنها مأخوذة أساسًا من إحدى عيناتك)

سلوك متوقع

يجب أن يكون عرض النص المميز في نفس الموقع وبنفس الخط وفي نفس المكان.

معلومة اضافية
لقد حاولت باستخدام كل من svg و canvas لكني أرى نفس السلوك.

تمت مصادفة نفس السلوك في # 189 ، لكن لم يحالفني أي حظ مع أي حلول بديلة. لقد نظرت أيضًا في # 212.

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

بيئة

  • المتصفح (إن أمكن) [مثل Chrome 57 و Firefox 59]: لقد اختبرت في أحدث إصدار من الكروم في Firefox. السلوك خلل في كليهما.
  • نسخة React-PDF [مثل 3.0.4]:
  • نسخة React [مثل 16.3.0]:
  • إصدار Webpack (إن أمكن) [على سبيل المثال 4.16.2]:
question

التعليق الأكثر فائدة

هذا ما أستخدمه في مجموعة الاختبار الخاصة بي راجع للشغل :) لا تتردد في النسخ واللصق!

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

ال 4 كومينتر

مرحبا،
نظرًا لكيفية تقديم ملفات PDF ، ليس من الممكن دائمًا أن تكون طبقة النص مطابقة تمامًا للنص الموجود تحتها. أنا آسف لذلك: (هناك الكثير من الحيل التي استخدمها Mozilla وأنا لمحاذاة هذا النص. ما يمكنني اقتراحه هو تنفيذ <mark > بشكل مشابه لكيفية قيام Mozilla بذلك ، لذلك باستخدام نص شفاف وخلفية شبه شفافة. بهذه الطريقة ، سيظهر النص المحاذي بشكل صحيح والمعروض بشكل صحيح خلال التحديد.

سأعطي ذلك فرصة. شكرا على اقتراحك.

هذا ما أستخدمه في مجموعة الاختبار الخاصة بي راجع للشغل :) لا تتردد في النسخ واللصق!

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

عمل هذا على أكمل وجه. شكرًا جزيلاً على الاقتراح ، لسبب ما لم أفكر بما فيه الكفاية في CSS. وشكرا لعملكم في المكتبة! لقد كان من دواعي سروري استخدامه.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات