印刷に反応しやすい印刷
14952 ワード
導入
これは、通常のJavaScriptを使用して簡単です
print()
ウィンドウの全体またはページの印刷をトリガーする方法.しかし、我々は常にそれを望んでいない.我々は、そのウェブサイトの一部を印刷することに興味があるかもしれません.実際、印刷ボタンをクリックするまで、印刷したい部分をユーザーに表示することさえ望まないかもしれません.これらすべてを行うには、まだその部分のスタイルを維持したい.
すべてのこれらの問題を使用して反応で修正されているReact-To-Print NPMパッケージ私はあなたが印刷するために反応を使って印刷することができて、CSSスタイルを維持している間、印刷されているコンポーネントさえ隠す方法を示すでしょう.
何が印刷に反応しますか?
これはエンドユーザに、CSSスタイルをコピーした印刷ウィンドウをポップアップすることで、コンポーネントの内容をプリントアウトする能力を与えることを目的としたNPMパッケージです.
前提条件
このチュートリアルではJavaScript and React 特にdifference between class and functional component .
スタータープロジェクト
我々は、このチュートリアルのスタータープロジェクトとしてアプリを使用されます.ローカルマシンでプロジェクト設定を取得するには、次の手順を実行します.
git clone https://github.com/EBEREGIT/react-auth
npm install
npm start
すごい!
印刷するコンポーネントの構築
import React, { useRef } from "react";
import { Button } from "react-bootstrap";
import ReactToPrint from "react-to-print";
export default function PrintComponent() {
let componentRef = useRef();
return (
<>
<div>
{/* button to trigger printing of target component */}
<ReactToPrint
trigger={() => <Button>Print this out!</Button>}
content={() => componentRef}
/>
{/* component to be printed */}
<ComponentToPrint ref={(el) => (componentRef = el)} />
</div>
</>
);
}
From the code above, we imported the
ReactToPrint
library, then we called theReactToPrint
component in the body. TheReactToPrint
holds the trigger (this can be a button or what so ever we choose) and the content (this is a reference to the component that is to be printed).
下に
ReactToPrint
コンポーネントは、ref
接続するReactToPrint
コンテンツ小道具.さあ、ビルドしましょう
ComponentToPrint
次のコードを含むコンポーネント
class ComponentToPrint extends React.Component {
render() {
return (
<div>
<h2 style={{color: "green"}}>Attendance</h2>
<table>
<thead>
<th>S/N</th>
<th>Name</th>
<th>Email</th>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Njoku Samson</td>
<td>samson@yahoo.com</td>
</tr>
<tr>
<td>2</td>
<td>Ebere Plenty</td>
<td>ebere@gmail.com</td>
</tr>
<tr>
<td>3</td>
<td>Undefined</td>
<td>No Email</td>
</tr>
</tbody>
</table>
</div>
);
}
}
index.css
thead th {
padding-right: 50px;
}
freeComponent.js
ファイル:
<PrintComponent />
次のようにファイルの先頭にコンポーネントをインポートすることを忘れないでください.
import PrintComponent from "./PrintComponent";
http://localhost:3000/free
次の画面が必要です.印刷プレビューは、私たちが印刷したいコンポーネントとCSSスタイルが残されていないことに注意してください.すごい!
印刷するコンポーネントの非表示
場合によっては、印刷ボタンがクリックされるまで印刷されるべきものを見ることができません.これは、請求書、領収書などを生成しているときに便利です.これを起こすためには
PrintComponent
コンポーネントPrintComponent.js
ファイル.置換
<ComponentToPrint ref={(el) => (componentRef = el)} />
次のコード
<div style={{ display: "none" }}>
<ComponentToPrint ref={(el) => (componentRef = el)} />
</div>
以下のような印刷ボタンをクリックすると、同じ結果が得られます.
信じられない!
重要な通知!
トリガーコンポーネント(
PrintComponent
私たちの場合では、機能的であるかクラス構成要素であるかもしれませんが、印刷されるべきコンポーネントComponentToPrint
私たちの場合では、それが働くためにクラス構成要素でなければなりません.結論
我々は非常に簡単に反応で印刷を行う方法を確認することができました.我々が欲しいコンポーネントだけを印刷することができるだけでなく、コンポーネントを隠すこともできます、そして、CSSスタイルは影響を受けません.
私たちが触れていなかったが、ドキュメンテーションで利用できる他の多くの機能が、あります.私はあなたの時間を取るし、ドキュメントを見て、他の機能を再生し、何を考え出すことができます参照してください.
全コードhere
Reference
この問題について(印刷に反応しやすい印刷), 我々は、より多くの情報をここで見つけました https://dev.to/ebereplenty/printing-in-react-made-easy-with-react-to-print-4b3kテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol