Javascript 使用PDF.js压缩缩放
我有一个移动应用程序,可以用PDF.js呈现PDF文件。我的框架是离子型和角度型的。 我可以渲染PDF,但在缩放方面有问题。当我使用离子缩放时,pdf会变得模糊。js提供了缩放功能,但仅限于级别。 有没有一种方法可以将捏手势和无障碍缩放结合起来Javascript 使用PDF.js压缩缩放,javascript,angularjs,ionic-framework,hammer.js,pdfjs,Javascript,Angularjs,Ionic Framework,Hammer.js,Pdfjs,我有一个移动应用程序,可以用PDF.js呈现PDF文件。我的框架是离子型和角度型的。 我可以渲染PDF,但在缩放方面有问题。当我使用离子缩放时,pdf会变得模糊。js提供了缩放功能,但仅限于级别。 有没有一种方法可以将捏手势和无障碍缩放结合起来 我已经尝试了hammer.js,但没有找到可用的代码…我找到了解决方案: 我以2.3的因子呈现pdf,因此页面太高。然后我用Ionic缩小并计算如下值: $ionicScrollDelegate.$getByHandle("pdfScroller")
我已经尝试了hammer.js,但没有找到可用的代码…我找到了解决方案: 我以2.3的因子呈现pdf,因此页面太高。然后我用Ionic缩小并计算如下值:
$ionicScrollDelegate.$getByHandle("pdfScroller")
.zoomBy(window.innerWidth / (document.getElementById("pageContainer1").clientWidth);
case 'page-width':
scale = pageWidthScale;
break;
系数2.3必须分别在viewer.js和pdf.js中设置。
第4900-5000行应该是这样的:
$ionicScrollDelegate.$getByHandle("pdfScroller")
.zoomBy(window.innerWidth / (document.getElementById("pageContainer1").clientWidth);
case 'page-width':
scale = pageWidthScale;
break;
将其更改为:
case 'page-width':
scale = pageWidthScale * 2.3;
break;
现在应该可以放大,文本可读
编辑
HTML:
setPdfToCenter和ZoomToFullSize:
function setPdfToCenter(){
var scroll = document.getElementsByClassName("scroll");
for(var i=0; i < scroll.length; i++){
if(scroll[i].parentElement.id == "pdfScrollerID"){
scroll[i].style.width = (window.innerWidth / MINZOOM_DEAULT) + "px";
}
}
$scope.resetZoom();
}
function zoomToFullSize(){
$scope.pdfScroller.zoomBy(window.innerWidth / (document.getElementById("pageContainer1").clientWidth));
}
函数setPdfToCenter(){
var scroll=document.getElementsByClassName(“滚动”);
对于(变量i=0;i
另请参见,谢谢。但我已经看到了这一点。我在尝试实现您描述的东西时遇到了问题,您能提供一些工作代码吗?您是否在ion scroll指令中呈现pdf?是的,我在名为“pdfScroller”的ion scroll中呈现了它。我添加了一些代码。但是我切换到了cordova文档查看器插件,因为我的pdf查看器不够好。我有很多记忆问题。也许这对你来说也是一种可能性。很好,我会尝试,实际上我无法让它工作,因为在最新版本的ionic中有一个bug,它要求在指令中添加overflow scroll=“false”属性,否则缩放功能不起作用。
function setPdfToCenter(){
var scroll = document.getElementsByClassName("scroll");
for(var i=0; i < scroll.length; i++){
if(scroll[i].parentElement.id == "pdfScrollerID"){
scroll[i].style.width = (window.innerWidth / MINZOOM_DEAULT) + "px";
}
}
$scope.resetZoom();
}
function zoomToFullSize(){
$scope.pdfScroller.zoomBy(window.innerWidth / (document.getElementById("pageContainer1").clientWidth));
}