我想在Android中渲染/打开PDF文件(存储在SDCard中)而不使用内置应用程序或查看器.
1)我们尝试过MuPDF开源库,但使用这个库进行渲染非常慢.
2)我们可以使用iText库在Android中呈现PDF文件(即iText作为PDF查看器).
是否有可以在Android中使用的其他PDF库(开源)或建议开发Android的PDF查看器的基本指南.
我添加MUPDF到Android应用程序做:
(1) http://mupdf.blogspot.com/
(2) http://pastebin.com/YzHUhzE7
当我尝试做的时候:
Intent intent = new Intent(getBaseContext(), ChoosePDFActivity.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
我明白了:
07-19 05:22:37.255: W/dalvikvm(16084): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lcom/artifex/mupdfdemo/MuPDFCore;
07-19 05:22:37.255: D/AndroidRuntime(16084): Shutting down VM
07-19 05:22:37.255: W/dalvikvm(16084): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
07-19 05:22:37.275: E/AndroidRuntime(16084): FATAL EXCEPTION: main
07-19 05:22:37.275: E/AndroidRuntime(16084): java.lang.ExceptionInInitializerError
07-19 05:22:37.275: E/AndroidRuntime(16084): at com.artifex.mupdfdemo.MuPDFActivity.openFile(MuPDFActivity.java:212)
07-19 05:22:37.275: E/AndroidRuntime(16084): at com.artifex.mupdfdemo.MuPDFActivity.onCreate(MuPDFActivity.java:311)
07-19 05:22:37.275: E/AndroidRuntime(16084): at android.app.Activity.performCreate(Activity.java:5104)
07-19 05:22:37.275: E/AndroidRuntime(16084): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
07-19 05:22:37.275: E/AndroidRuntime(16084): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
07-19 05:22:37.275: E/AndroidRuntime(16084): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
07-19 …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的Android应用程序中阅读pdf文件.我不想使用默认的pdf阅读器,只是打开一个新的意图,因为我需要自己的GUI,并希望使用第一页作为封面.因此,我需要制作自己的pdf阅读器.我做了一些研究,遇到了muPDF和Android PDF Viewer Library.
我试着从github描述中按照教程实现Android PDF Viewer Library.但问题是它永远加载pdf文件.除了描述中的步骤之外,我还需要做些什么吗?
我找不到muPDF库的任何教程,有没有?怎么实现呢?
如果对前两个问题没有有用的答案,那么有没有好的pdf库,有教程和良好的文档?
谢谢,希望我能够解决我的问题
我使用了一些MuPDF修改API编辑了PDF,我无法弄清楚如何将这个修改过的PDF保存到磁盘.这可能吗?如果是这样,我该怎么保存这个PDF?
我正在开展一个项目,我必须处理pdf视图.我试图在我的项目中集成mupdf库,但如下所述得到错误.我已按照自述文件中提到的所有步骤进行操作.请帮我解决这个错误.
Compile thumb : mupdf <= mupdf.c
jni/mupdf.c:10:18: fatal error: fitz.h: No such file or directory
compilation terminated.
make: *** [obj/local/armeabi/objs-debug/mupdf/mupdf.o] Error 1
Run Code Online (Sandbox Code Playgroud)
我的Android.mk文件
LOCAL_PATH := $(call my-dir)
TOP_LOCAL_PATH := $(LOCAL_PATH)
MUPDF_ROOT := $(call my-dir)
include $(TOP_LOCAL_PATH)/Core.mk
include $(TOP_LOCAL_PATH)/ThirdParty.mk
include $(CLEAR_VARS)
LOCAL_C_INCLUDES := \
$(MUPDF_ROOT)/draw \
$(MUPDF_ROOT)/fitz \
$(MUPDF_ROOT)/mupdf
LOCAL_CFLAGS :=
LOCAL_MODULE := mupdf
LOCAL_SRC_FILES := mupdf.c
LOCAL_STATIC_LIBRARIES := mupdfcore mupdfthirdparty
LOCAL_LDLIBS := -lm -llog -ljnigraphics
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)
提前致谢.
在我现有的Android应用程序中,我使用MuPDF,我在这个文档的帮助下移植. 现在,当我想在活动中打开pdf文件时,我使用:Uri uri = Uri.parse(path);
Intent intent = new Intent(this, MuPDFActivity.class);
intent.setAction(Intent.ACTION_VIEW);
intent.setData(uri);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
这是一个新的活动,我的问题是:(1)我怎样才能开始片段查看pdf?(2)MuPDF是否支持我可以在我的currant Android-Tab-View下调用的片段?(3)有没有办法将此活动转换为片段?
目前我在做:
public class DummySectionFragment extends Fragment {
public DummySectionFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = null;
rootView = inflater.inflate(R.layout.activity_dummy_section_fragment, container, false);
Intent myIntent = new Intent(getActivity(), MuPDFActivity.class);
myIntent.setAction(Intent.ACTION_VIEW);
myIntent.setData(uri);
getActivity().startActivity(myIntent);
return rootView;
}
}
Run Code Online (Sandbox Code Playgroud)
其中:在我当前的选项卡视图布局上打开一个新活动,这看起来不太好,因为它涵盖整个选项卡布局,用户必须单击BACK按钮才能查看选项卡视图.
如何将mupdf库集成到现有的iOS项目中?我可以在我的设备和模拟器上运行提供的源代码,但我似乎无法正确地将它添加到我的项目中.我尝试链接和导入已编译的静态库,但它只能在模拟器中工作,即使我使用lipo构建一个包含所有体系结构的胖库(armv7 armv7s arm64 i386).在这种情况下,错误是
file was built for archive which is not the architecture being linked (armv7s)
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望将其添加为子模块以便于升级,我也尝试过,但我无法让xcode识别构建库的位置.
如此处所述(https://github.com/sufficientlysecure/document-viewer/issues/88),我们面临的问题是,作为MuPdf Android演示的一部分的JNI库非常大.在这种情况下,这会影响Document Viewer应用程序的大小(https://f-droid.org/repository/browse/?fdid=org.sufficientlysecure.viewer).APK中的*.so文件大小超过12 MB!
在我们几个月前将MuPdf更新到最新版本之前(即文档查看器的2.5及更早版本),*.so文件每个只占3,9 MB.
你能解释这300%的增长吗?有什么我们可以改变来进一步压缩我们的JNI库吗?
我已成功将 mupdf 集成到我的项目中。现在我可以浏览pdf,添加新的注释和编辑,但我不知道如何将数字签名嵌入到pdf中。
任何人都可以建议我将数字签名嵌入到 pdf 中的步骤吗?
(请忽略空方块。)
如何<span>在第二种情况下正确定位蓝色元素?
<view style="height: 45em;">
<pdf-page> <!-- position: relative -->
<text class="textLayer"> <!-- position: absolute -->
<span style="left: 417.34px; top: 37.8391px; ..."></span> <!-- position: absolute -->
</text>
<svg width="595px" height="842px" preserveAspectRatio="none" viewBox="0 0 595 842" xmlns="http://www.w3.org/2000/svg" version="1.1">
<g ?><g ?><text><tspan></tspan></text></g></g>
</svg>
</pdf-page>
</view>
Run Code Online (Sandbox Code Playgroud)
这是 stackoverflow 中的完整案例(/* ? */在单击 Show code snippet 后查看第二个窗格):
@namespace url(http://www.w3.org/1999/xhtml);
@namespace svg url(http://www.w3.org/2000/svg);
/*pdf.css*/ …Run Code Online (Sandbox Code Playgroud)mupdf ×10
android ×6
android-ndk ×3
java ×3
ios ×2
pdf ×2
android-view ×1
css ×1
css-position ×1
html ×1
pdfjs ×1