PdfViewerDemo icon indicating copy to clipboard operation
PdfViewerDemo copied to clipboard

请问如果直接设置setScale比例大小

Open zz5360 opened this issue 4 years ago • 16 comments

muPDFReaderView.setScaleX(2.5f); muPDFReaderView.setScaleY(1f);
我设置这两个属性如果横批太大了有些看不到

zz5360 avatar Jun 15 '20 02:06 zz5360

你也遇到了横竖屏切换的问题吗?pdf文件竖屏的时候能填充满屏幕,横屏的时候两边有很大的间隙(空白)

keaitao0321 avatar Jul 06 '20 07:07 keaitao0321

你也遇到了横竖屏切换的问题吗?

我是直接横批,如果设置比率大小会有问题,默认显示太小。 我后来是直接反编译了源码,改了里面的代码

zz5360 avatar Jul 06 '20 07:07 zz5360

muPDFReaderView.setScaleX(2.2f); muPDFReaderView.setScaleY(1.5f); 这样设置倒是可以解决横屏显示太小的问题,但是这页的内容显示不全了,底下的一些文本显示不出来,可以请教下,你是怎么解决的吗

keaitao0321 avatar Jul 06 '20 08:07 keaitao0321

muPDFReaderView.setScaleX(2.2f); muPDFReaderView.setScaleY(1.5f); 这样设置倒是可以解决横屏显示太小的问题,但是这页的内容显示不全了,底下的一些文本显示不出来,可以请教下,你是怎么解决的吗

博主这个设置主要是设置显示View的大小, 并不能设置pdf本身的比例 ,如果你想要改变本身的比例得反编译源码设置ReaderView的mScale 属性

zz5360 avatar Jul 06 '20 08:07 zz5360

你说的是反射吧,我是直接把作者的源码复制出来的。这要修改这一个值么?你具体是怎么修改的,

keaitao0321 avatar Jul 06 '20 08:07 keaitao0321

image

keaitao0321 avatar Jul 06 '20 08:07 keaitao0321

你说的是反射吧,我是直接把作者的源码复制出来的。这要修改这一个值么?你具体是怎么修改的,

因为源码里并没有公开属性 ,你直接修改mScale 的值就可以看到效果了

zz5360 avatar Jul 06 '20 08:07 zz5360

谢谢,我如下修改解决了该问题 /** * 修改缩放比 * * @param mConfiguration */ private void chanageScale(Configuration mConfiguration) { int mOrientation = mConfiguration.orientation; if (mOrientation == Configuration.ORIENTATION_LANDSCAPE) { //切换为横屏 DisplayMetrics displayMetrics = UIUtils.getDisplayMetrics(); float scaledDensity = displayMetrics.scaledDensity; mScale = scaledDensity; muPDFReaderView.setScale(mScale); } else if (mOrientation == Configuration.ORIENTATION_PORTRAIT) { //切换为竖屏 mScale = 1.0f; muPDFReaderView.setScale(mScale); } }

遇到其他问题我们可以再讨论

keaitao0321 avatar Jul 06 '20 08:07 keaitao0321

谢谢,我如下修改解决了该问题 /**

  • 修改缩放比
  • @param mConfiguration */ private void chanageScale(Configuration mConfiguration) { int mOrientation = mConfiguration.orientation; if (mOrientation == Configuration.ORIENTATION_LANDSCAPE) { //切换为横屏 DisplayMetrics displayMetrics = UIUtils.getDisplayMetrics(); float scaledDensity = displayMetrics.scaledDensity; mScale = scaledDensity; muPDFReaderView.setScale(mScale); } else if (mOrientation == Configuration.ORIENTATION_PORTRAIT) { //切换为竖屏 mScale = 1.0f; muPDFReaderView.setScale(mScale); } }

遇到其他问题我们可以再讨论

请问一下,源码在哪里下载的。

oy-paddy avatar Sep 23 '20 02:09 oy-paddy

花了一些时间,把com.lonelypluto:pdf-viewer:1.0.7.jar 包源代码给移植出来,虽然少了一些资源文件(图片,布局),但是这些可以在github上搜索到!不难,就是需要花些时间,然后修改源码 ReaderView 类MAX_SCALE 最大缩放,因为之前的缩放到最大还是太小了。

oy-paddy avatar Sep 23 '20 07:09 oy-paddy

我就是一个个去复制源码的,不过不知道能不能不修改 ReaderView 类MAX_SCALE ,有什么API可以直接修改字体的大小,不过想想也不现实,毕竟这个是PDF文件了

keaitao0321 avatar Sep 23 '20 07:09 keaitao0321

我就是一个个去复制源码的,不过不知道能不能不修改 ReaderView 类MAX_SCALE ,有什么API可以直接修改字体的大小,不过想想也不现实,毕竟这个是PDF文件了 setPaintStrockWidth 函数可以设置画笔大小

oy-paddy avatar Sep 24 '20 06:09 oy-paddy

@keaitao0321

oy-paddy avatar Sep 24 '20 06:09 oy-paddy

这个函数是设置手绘画笔大小的,不是设置pdf文件本身字体大小的 @oy-paddy

keaitao0321 avatar Sep 24 '20 06:09 keaitao0321

@keaitao0321 其实可以一加载完毕,就放大倍数显示。因为市面上没有可以直接设置PDF文字显示的大小

oy-paddy avatar Sep 24 '20 06:09 oy-paddy

对的,可是客户的需求想象力总是天马行空。其他有相关的api可以获取到当前页面的所有文字信息。可以自己读取出来组成一个String ,用TextView显示这样就可以放大缩小了,不过之前的文本格式对不上来了

keaitao0321 avatar Sep 24 '20 06:09 keaitao0321