PDF 生成模板编辑器
开源可视化 PDF 生成引擎,支持自定义模板,并提供面向开发者的 API,灵活构建文档生成流程。
WebViewer 中原点 (0, 0) 是在 WebViewer 页面的左上角。x 轴水平向右延伸,y 轴垂直向下延伸。
坐标转换由当前显示模式完成,可通过 documentViewer.getDisplayModeManager().getDisplayMode() 获取。Window 坐标相对于查看器元素(documentViewer.getViewerElement())的左上角。
const pageNumber = 1;
const pagePoint = {
x: 0,
y: 0
};
const displayMode = documentViewer.getDisplayModeManager().getDisplayMode();
const windowPoint = displayMode.pageToWindow(pagePoint, pageNumber);
// { x: 47, y: 64 }const pageNumber = 1;
const windowPoint = {
x: 47,
y: 64
};
const displayMode = documentViewer.getDisplayModeManager().getDisplayMode();
const pagePoint = displayMode.windowToPage(windowPoint, pageNumber);
// { pageNumber: 1, x: 0, y: 0 }const getMouseLocation = e => {
const rect = documentViewer.getViewerElement().getBoundingClientRect();
return {
x: e.clientX - rect.left,
y: e.clientY - rect.top
};
}
const handleClick = (e) => {
const displayMode = documentViewer.getDisplayModeManager().getDisplayMode();
let windowCoordinates = getMouseLocation(e);
const page = displayMode.getSelectedPages(windowCoordinates, windowCoordinates);
const clickPageNumber = (page.first !== null) ? page.first : documentViewer.getCurrentPage();
const pagePoint = displayMode.windowToPage(windowCoordinates, clickPageNumber);
}
documentViewer.addEventListener('click', handleClick);