NotImplementedError:docx2pdf 未在 Linux 上实现,因为它需要安装 Microsoft Word

问题描述 投票:0回答:1

我正在使用

chaquopy
.docx
转换为
.pdf
在 android 中,当我使用以下代码时,它会导致应用程序崩溃。

MainActivity.kt

val py = Python.getInstance()
val myModule = py.getModule("MyModule")
myModule.callAttr("convertDocxToPdf", inputFile.absolutePath, outputFile.absolutePath)

我的模块.py

from docx2pdf import convert

def convertDocxToPdf(input, output):
    convert(input, output)

注意:我还在

Python
中初始化了
MyApplication.kt

现在我的应用程序已成功构建,但运行后崩溃并出现以下异常:

崩溃日志

FATAL EXCEPTION: main
Process: com.example.tryingsomething, PID: 26841
com.chaquo.python.PyException: NotImplementedError: docx2pdf is not implemented for linux as it requires Microsoft Word to be installed
    at <python>.docx2pdf.convert(__init__.py:108)
    at <python>.MyModule.convertDocxToPdf(MyModule.py:4)
    at <python>.chaquopy_java.call(chaquopy_java.pyx:354)
    at <python>.chaquopy_java.Java_com_chaquo_python_PyObject_callAttrThrowsNative(chaquopy_java.pyx:326)
    at com.chaquo.python.PyObject.callAttrThrowsNative(Native Method)
    at com.chaquo.python.PyObject.callAttrThrows(PyObject.java:232)
    at com.chaquo.python.PyObject.callAttr(PyObject.java:221)
    at com.example.tryingsomething.MainActivity$tryDoc4j$1.invokeSuspend(MainActivity.kt:133)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(DispatchedContinuation.kt:367)
    at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable(Cancellable.kt:30)
    at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable$default(Cancellable.kt:25)
    at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:110)
    at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126)
    at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56)
    at kotlinx.coroutines.BuildersKt.launch(Unknown Source:1)
    at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(Builders.common.kt:47)
    at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source:1)
    at com.example.tryingsomething.MainActivity.tryDoc4j(MainActivity.kt:116)
    at com.example.tryingsomething.MainActivity.onCreate(MainActivity.kt:84)
    at android.app.Activity.performCreate(Activity.java:8207)
    at android.app.Activity.performCreate(Activity.java:8191)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3819)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4022)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2336)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:246)
    at android.app.ActivityThread.main(ActivityThread.java:8653)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
    Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@bab8ab3, Dispatchers.Main.immediate]
android python-docx chaquopy docx2pdf
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.