微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java.lang.illegalstateexception:“当前页面未完成!”

如何解决java.lang.illegalstateexception:“当前页面未完成!”

在所有尝试使用itext7创建带有包含阿拉伯文本的表格的pdf的所有尝试失败之后,我决定转为常规方式,即使用view.draw并将结果保存为pdf。但这也不起作用。这是代码

 Android.Graphics.Pdf.PdfDocument pdf_new = new Android.Graphics.Pdf.PdfDocument();
            Android.Graphics.Pdf.PdfDocument.PageInfo pageInfo_new = new Android.Graphics.Pdf.PdfDocument.PageInfo.Builder(6000,6000,0).Create();
            Android.Graphics.Pdf.PdfDocument.Page page_new = pdf_new.StartPage(pageInfo_new);
            ListView listView = new ListView(this.Context);
            accounts_info_homeadapter hmm = new accounts_info_homeadapter(this,pdflist);
            listView.Adapter = hmm;
            listView.SetBackgroundColor(Android.Graphics.Color.Aqua);
            listView.Draw(page_new.Canvas);
            // lst.Draw(page.Canvas);
            //TextView txt = new TextView(this.Context);
            //txt.Text = "hi";
            //txt.Draw(page.Canvas);
            var path = global::Android.OS.Environment.ExternalStorageDirectory.AbsolutePath;
            file_Path = Path.Combine(path.ToString(),"Client.pdf");
            new_stream = new FileStream(file_Path,FileMode.Create);
            new_stream.Flush();
            pdf_new.Writeto(new_stream);

            new_stream.Close();
            pdf_new.Close();

我遇到了一个例外:java.lang.illegalstateexception: 'current page not finished!',尽管我一周前在试用列表上尝试过此方法,但仍在工作。现在我明白了。我以为可能是pdf的大小,所以我开始增加它,但徒劳无功。我试图更改变量的名称,我想也许是因为我之前曾尝试将其与itext一起使用,但还是一无所获。我删除了正在处理的片段,然后重新创建它,也没有执行任何操作。任何人都知道问题出在哪里。预先感谢。

解决方法

您错过了一行。您忘了在编辑后关闭页面。

currentTarget
,

在画布中插入所需文本后,确保放置这行代码。 这帮助我消除了错误

canvas.drawText("Financial Statement for 2021",40,50,myPaint);
myPdfDocument.finishPage(myPage1); //this one

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。