Pdf 想将Java类转换为C类Xamarin Android吗

Pdf 想将Java类转换为C类Xamarin Android吗,pdf,xamarin,xamarin.android,Pdf,Xamarin,Xamarin.android,我曾在原生android中将HTML文件转换为PDF文件。正如我所预料的那样。当我想切换到Xamarin.Android时,我无法转换回调 printAdapter.onLayout(null, printAttributes, null, new PrintDocumentAdapter.LayoutResultCallback() { @Override public void onLayoutFinished(PrintDocumentInfo info, boolean

我曾在原生android中将HTML文件转换为PDF文件。正如我所预料的那样。当我想切换到Xamarin.Android时,我无法转换回调

printAdapter.onLayout(null, printAttributes, null, new PrintDocumentAdapter.LayoutResultCallback() {
    @Override
    public void onLayoutFinished(PrintDocumentInfo info, boolean changed) {
        Log.e("Finish", "onLayoutFinished" );
        ParcelFileDescriptor fileDescriptor = getOutputFile(path, fileName);
        if (null == fileDescriptor) {
            if (mListener != null) {
                mListener.onError();
            }
            return;
        }
        printAdapter.onWrite(new PageRange[]{PageRange.ALL_PAGES}, fileDescriptor, new CancellationSignal(), new PrintDocumentAdapter.WriteResultCallback() {
            @Override
            public void onWriteFinished(PageRange[] pages) {
                Log.e("Finish", "onWriteFinished" );
                super.onWriteFinished(pages);
                if (mListener != null) {
                    mListener.onWriteFinished((new File(path, fileName)).getAbsolutePath());
                }
            }
        });
    }
}, null);
以上代码是我用Java在本机Android中完成的

printAdapter.onWrite(new PageRange[]{PageRange.ALL_PAGES}, fileDescriptor, new CancellationSignal(), new PrintDocumentAdapter.WriteResultCallback() {
            @Override
            public void onWriteFinished(PageRange[] pages) {
                Log.e("Finish", "onWriteFinished" );
                super.onWriteFinished(pages);
                if (mListener != null) {
                    mListener.onWriteFinished((new File(path, fileName)).getAbsolutePath());
                }
            }
        });
WriteResultCallback当我想在Xamarin.Android中调用此回调时。这表明需要创建构造函数。因此,我创建了一个类,并用构造函数在新类中继承WriteResultCallback

public class MyWriteResultCallbackt : WriteResultCallback
{
    public MyWriteResultCallbackt(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer)
    {

    }

    public override void OnWriteFinished(PageRange[] pages)
    {
        base.OnWriteFinished(pages);
    }
}
之后,当我编译代码时,我得到了编译错误

/Users/apple/Projects/Sample/Sample/obj/Debug/android/src/md5a4074a9abd9040c154db052535adf080/MyWriteResultCallbackt.java(8,8): 错误:错误:WriteResultCallback()在中不是公共的 WriteResultCallback;无法从外部程序包公共访问 类MyWriteResultCallbackt(示例)


有人能告诉我我是否在正确的轨道上,如果有办法在Xamarin.Android中进行文件转换(HTML到PDF)。请告诉我方法。

你有没有尝试在当前类中编写
MyWriteResultCallbackt
。你可以显示示例项目的链接。是的,我在同一个类@JuniorJiang MSFTOkey中创建,这很奇怪。从错误日志中,回调不能在
printAdapter
中使用。也许可以尝试在printAdapter中编写。@Pandiyan Muthu这里是源代码@JuniorJiang msft谢谢你的代码,我会检查它的@潘迪扬·穆图