React-pdf: 尝试使用mark标签在注释层中突出显示文本时出现奇怪的字体行为。

创建于 2019-06-21  ·  4评论  ·  资料来源: wojtekmaj/react-pdf

描述

尝试使用mark标签在注释层中突出显示文本时出现奇怪的字体行为。

我在react-bootstrap模态对话框中显示pdf。 我正在尝试使用Page组件的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上对这两种chrome进行了最新测试。 两者的行为均出现故障。
  • React-PDF版本[例如3.0.4]:
  • React版本[例如16.3.0]:
  • Webpack版本(如果适用)[例如4.16.2]:
question

最有用的评论

这就是我在自己的测试套件BTW中使用的方法:)随意复制和粘贴!

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

所有4条评论

你好
由于PDF的呈现方式,文本层并不总是能够与下面的文本完全匹配。 我为此感到遗憾:((Mozilla有很多技巧,我正在使用这些技巧来对齐文本。我可以建议实现与Mozilla相似的实现<mark >,因此使用透明文本以及半透明的背景。这样,正确对齐,正确呈现的文本将“照亮”所选内容。

我会试一试。 谢谢你的建议。

这就是我在自己的测试套件BTW中使用的方法:)随意复制和粘贴!

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

这工作得很好。 非常感谢您的建议,由于某种原因,人们对CSS的想法还不够。 感谢您在图书馆的工作! 使用它是一种荣幸。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

saadq picture saadq  ·  3评论

Vanals picture Vanals  ·  4评论

Solitaryo picture Solitaryo  ·  5评论

douglasrcjames picture douglasrcjames  ·  4评论

joepio picture joepio  ·  3评论