javascript - 仅电子打印到 pdf 选择
问题描述
我需要在电子中导出为 PDF,但不是整个页面,而只是一个部分(HTML 节点会很棒)。整个页面都可以正常工作。我在文档中看到了一个选项:printSelectionOnly:
printSelectionOnly Boolean (可选) - 是否只打印选择。
但我不知道它是否真的会如何工作。我该如何选择?它可能是一个 HTML 节点吗?
提前致谢。
更新
printSelectionOnly 选项是仅选择窗口中的焦点内容以打印/导出为 PDF。
这回答了我的问题。
解决方案
printSelectionOnly 选项仅打印页面中已选择的内容。
他们所说的“仅选择”是指页面中当前以蓝色突出显示的所有元素,您可以使用 ctrl+c 进行复制。
要使其成为 HTML 节点,您需要创建一个范围对象。然后,使用范围对象选择节点。这将允许您仅打印页面的一个节点。
function selectDiv() {
selectElementById("frame");
}
function selectChildDiv() {
selectElementById("childDiv");
}
function selectElementById(id) {
let element = document.getElementById(id);
// Create the range object
let range = new Range();
// Select the node using the range object
range.setStart(element, 0);
range.setEndAfter(element, 0);
// Apply the range
document.getSelection().removeAllRanges();
document.getSelection().addRange(range);
// This is where you would call the printToPDF
}
button, #frame {
margin: 15px 0;
}
div {
border: 1px solid black;
box-shadow: 2px 2px 4px fuchsia;
padding: 5px;
}
i {
position: relative;
}
i::after {
content: "I can not be selected";
position: absolute;
bottom: 100%; right: 0%;
font-style: normal;
font-size: small;
}
<button onclick="selectDiv()">Select parent div</button>
<button onclick="selectChildDiv()">Select child div</button>
<p>Element before div</p>
<div id="frame">
Inner Text
<p>Element inside div</p>
<i>Note : Unselectable elements like pseudo elements won't be selected.</i>
<div id="childDiv">Div inside div</div>
</div>
<p>Element after div</p>
推荐阅读
- azure - 如何在 Azure DevOps 上跟踪触发我的管道的原因?
- python-3.x - 使用 BeautifulSoup 或 Pandas 抓取表数据
- html - 使用 Boostrap-Vue 时如何对齐卡片标题
- apache-camel - pollEnrich 从 FTP
- swiftui - 拆分表单内联导航栏标题
- avfoundation - 什么会影响音频单元渲染回调周期(周期)?
- sql - 在 SQL 中添加和除以 2 行以获得百分比
- python-3.x - 在 http/2 或 http/2 协议而不是 http/1 上运行 django 应用程序
- python - 使用 python 正则表达式在有限字符串中查找特定模式
- javascript - 查找给定字符串中可变数量数字的总和