android 如何获得pdf文件的页数

android 如何获得pdf文件的页数,第1张

分页方法:

打开网络pdf 思路整体还是来源与的加载

android中加载网络的框架有很多个。如image-laoder, fresco、glide等,首先都是从内存中找,如果内存中没有,接着从本地找,本地没有在从网络下载。

android中加载pdf也是类似,首先从本地找pdf文件,如果本地存在该pdf文件,直接打开,如果本地不存在,将该pdf文件下载到本地在打开。

下载文件用到了retrofit2的库,已经封装到android_pdf中了。

2依赖android_pdf库方法

21 在项目的gradle中增加如下代码:

compile 'comlidongpdf:android_pdf:101'

22 一句代码就可以加载网络pdf。

```

pdfViewfileFromLocalStorage(this,this,this,fileUrl,fileName);   //设置pdf文件地址

```

23对fileFromLocalStorage(this,this,this,fileUrl,fileName)的解析

/

```

 加载pdf文件

@param onPageChangeListener

@param onLoadCompleteListener

@param onDrawListener

@param fileUrl

@param fileName

/

public  void  fileFromLocalStorage(

final OnPageChangeListener onPageChangeListener,

final OnLoadCompleteListener onLoadCompleteListener,

final OnDrawListener onDrawListener,

String fileUrl,

final String fileName)

```

1 OnPageChangeListener onPageChangeListener  :翻页回调

2 OnLoadCompleteListener onLoadCompleteListener:加载完成的回调

3 OnDrawListener:页面绘制的回调

4 String fileUrl  : 文件的网络地址

5  String fileName 文件名称

3使用android_pdf库方法

31写一个布局文件

```

<xml version="10" encoding="utf-8">

<RelativeLayout xmlns:android=">

xmlns:tools=">

android:id="@+id/activity_main"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context="comlidongpdfandroidpdfMainActivity">

<comlidongpdfPDFView

android:id="@+id/pdfView"

android:layout_width="match_parent"

android:layout_height="match_parent"

/>

</RelativeLayout>

```

32在MainActivity中加载

```

import androidgraphicsCanvas;

import androidosEnvironment;

import androidsupportv7appAppCompatActivity;

import androidosBundle;

import androidutilLog;

import androidwidgetToast;

import comlidongpdfPDFView;

import comlidongpdfapiApiManager;

import comlidongpdflistenerOnDrawListener;

import comlidongpdflistenerOnLoadCompleteListener;

import comlidongpdflistenerOnPageChangeListener;

import comlidongpdfutilFileUtils;

import javaioFile;

import javaioFileOutputStream;

import javaioIOException;

import javaioInputStream;

import ok>

import rxandroidschedulersAndroidSchedulers;

import rxfunctionsAction1;

import rxschedulersSchedulers;

public class MainActivity extends AppCompatActivity implements OnPageChangeListener

,OnLoadCompleteListener, OnDrawListener {

private PDFView pdfView ;

@Override

protected void onCreate(Bundle savedInstanceState) {

superonCreate(savedInstanceState);

setContentView(Rlayoutactivity_main);

pdfView = (PDFView) findViewById( RidpdfView );

displayFromFile1(">

}

/

获取打开网络的pdf文件

@param fileUrl

@param fileName

/

private void displayFromFile1( String fileUrl ,String fileName) {

pdfViewfileFromLocalStorage(this,this,this,fileUrl,fileName);   //设置pdf文件地址

}

/

翻页回调

@param page

@param pageCount

/

@Override

public void onPageChanged(int page, int pageCount) {

ToastmakeText( MainActivitythis , "page= " + page +

" pageCount= " + pageCount , ToastLENGTH_SHORT)show();

}

/

加载完成回调

@param nbPages  总共的页数

/

@Override

public void loadComplete(int nbPages) {

ToastmakeText( MainActivitythis ,  "加载完成" + nbPages  , ToastLENGTH_SHORT)show();

}

@Override

public void onLayerDrawn(Canvas canvas, float pageWidth, float pageHeight, int displayedPage) {

// ToastmakeText( MainActivitythis ,  "pageWidth= " + pageWidth + "

// pageHeight= " + pageHeight + " displayedPage="  + displayedPage , ToastLENGTH_SHORT)show();

}

```

Adobe

Acrobat

PRO文本菜单下有

分割SPLIT命令(将PDF平均分割成几个部分由你指定每个部分的页数)

提取EXTRACT命令(输入提取的起启页和终止页,下面有选项可以勾取是否提取为单独的一张一张,如果勾选则会单独将你选中的这几页另生成一页一页PDF文档,如果不勾选则直接提取你输入的这几页为当前文本)

也有单独的删除某页或从某页到某页的命令

@echo off & title 获取PDF文件页数,并写入日志 By 依梦琴瑶

cd /d "%~dp0"

::设置PDF文件所在目录

set Pdf_dir=D:\Pdf_files

::设置正常文件的信息保存日志

set Ok_Log=OkLog

::设置错误文件的信息保存日志

set Err_Log=ErrLog

for /f "delims=" %%a in ('dir /a-d/s/b "%Pdf_dir%\pdf"') do (

    call :GetInfo "%%~a"

)

cls & echo PDF信息获取完毕。

pause

exit

:GetInfo

echo 获取 "%~nx1" 的页数

set "Pages="

for /f "tokens=2 delims=: " %%i in ('"pdftkexe" "%~1" dump_data 2^>nul ^| findstr /bi "NumberOfPages:" ^|^| echo E:Err') do set "Pages=%%~i"

if "%Pages%"=="Err" (

    >>"%Err_Log%" echo 名称: "%~nx1"

) else (

    >>"%Ok_Log%" echo 名称: "%~nx1"        页数: %Pages%

)

goto :eof

脚本保存编码为ANSI。

pdftk的路径请根据您电脑上的路径自定义修改或添加。

以上就是关于android 如何获得pdf文件的页数全部的内容,包括:android 如何获得pdf文件的页数、如何提取pdf文件的若干页出来、对文件夹内的pdf文件进行统计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10148681.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存