相关疑难解决方法(0)

Android - 从WebView绘制到PDF画布

我一直在Android上进行PDF打印工作时遇到麻烦.我要做的是在WebView中渲染一些HTML,然后在PDF画布上绘制WebView内容,最后将PDF写入文件.我遇到的问题是,当我绘制到PDF画布时,即使有足够的画布,内容也会被剪裁.我已经尝试使用这种工具来调整画布大小,.clipRect(Rect rect, Op op)但这种工作并不像我喜欢的那样好.

我也不知道如何将HTML px测量值可靠地转换为PDF PostScript 1/72英寸测量值.

这是我正在使用的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    WebView wv = (WebView) this.findViewById(R.id.webView1);

    wv.loadUrl("file:///android_asset/temp.html");           
}

public void button1onClick(View v)
{
    //Create PDF document
    PdfDocument doc = new PdfDocument();

    //Create A4 sized PDF page
    PageInfo pageInfo = new PageInfo.Builder(595,842,1).create();

    Page page = doc.startPage(pageInfo);

    WebView wv = (WebView) this.findViewById(R.id.webView1);

    page.getCanvas().setDensity(200);

    //Draw the webview to the canvas
    wv.draw(page.getCanvas());

    doc.finishPage(page);

    try
    {
        //Create the PDF file
        File root = Environment.getExternalStorageDirectory();          
        File file = …
Run Code Online (Sandbox Code Playgroud)

pdf android webview android-canvas

15
推荐指数
1
解决办法
5398
查看次数

Android从webview创建包含多个页面的pdf文档

我使用Android的PdfDocument框架(链接)从我的webview内容创建一个pdf文档.pdf创建得很好,但它只是一页文档.当webview内容很大时,我需要创建一个多页文档.我只需要在页面中分割WEBVIEW内容.我怎样才能实现这一目标?我不想使用iText或任何第三方库.

需要帮助.提前致谢.

// create a new document
PdfDocument document = new PdfDocument();

// create a page description
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(width, height, 1).create();

// start a page
PdfDocument.Page page = document.startPage(pageInfo);

// draw something on the page
View content = myWebview;
content.draw(page.getCanvas());

// finish the page
document.finishPage(page);

FileOutputStream fos;
try {
    fos = new FileOutputStream(fileNameWithPath, false);
    // write the document content
    document.writeTo(fos);

} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

// close …
Run Code Online (Sandbox Code Playgroud)

pdf android document webview multipage

8
推荐指数
1
解决办法
4205
查看次数

PDF打印视图问题

我试过两种方式,

1)创建WebView并加载我的pdf文档,我的应用程序几乎完成了部分打印过程.但在那面临印刷问题.

印刷后我会这样

它没有完整的A4纸张视图.任何人都可以帮助,我使用的代码如下,

    public void createWebPagePrint(WebView webView) {
    PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE);
    PrintDocumentAdapter printAdapter = null;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        printAdapter = webView.createPrintDocumentAdapter();
        String jobName = getString(R.string.app_name) + " Document";
        PrintAttributes.Builder builder = null;
        builder = new PrintAttributes.Builder();
        builder.setMediaSize(PrintAttributes.MediaSize.ISO_A4);
        PrintJob printJob = null;
        printJob = printManager.print(jobName, printAdapter, builder.build());
        if (printJob.isCompleted()) {
            Toast.makeText(getApplicationContext(), "Print Complete", Toast.LENGTH_LONG).show();
        } else if (printJob.isFailed()) {
            Toast.makeText(getApplicationContext(), "Print Failed", Toast.LENGTH_LONG).show();
        }
        builder.setMediaSize(PrintAttributes.MediaSize.ISO_A4)
                .setResolution(new PrintAttributes.Resolution("id", Context.PRINT_SERVICE, 1024, 720))
                .setColorMode(PrintAttributes.COLOR_MODE_COLOR).
                setMinMargins(PrintAttributes.Margins.NO_MARGINS).build();
    }


}
Run Code Online (Sandbox Code Playgroud)

注意:

https://developer.android.com/training/printing/html-docs.html

  • 有时加载pdf时它不显示. …

printing android

4
推荐指数
1
解决办法
496
查看次数

标签 统计

android ×3

pdf ×2

webview ×2

android-canvas ×1

document ×1

multipage ×1

printing ×1