【问题标题】:Create PDF file from Text String or HTML String从文本字符串或 HTML 字符串创建 PDF 文件
【发布时间】:2017-06-19 13:42:24
【问题描述】:

我的 codenameone-app 正在生成一些数据,我希望能够将这些数据汇总到 PDF 文件中以用于文档目的。

是否可以使用 java 库作为 cn1 库或使用将 HTML 字符串转换为 PDF 文件的 Web 服务,如下所示:?

https://www.html2pdfrocket.com/convert-android-html-to-pdf

也许其他人已经为此找到了最佳实践。

非常感谢!

【问题讨论】:

标签: codenameone


【解决方案1】:

目前还没有内置的解决方案,它应该很容易包装本机库,或者甚至可以移植一个 JavaSE 库来做到这一点。大多数执行此类操作的开发人员都使用服务器端进程来生成 PDF。

【讨论】:

  • 您说得对,至少在我的情况下,服务器端进程是最简单的方法。使用 Util.downloadUrlTo* 方法做得很好!
【解决方案2】:

在使用 html2pdfrocket 对其进行快速而肮脏的尝试之后 - 而不是使用或移植 Java 库 - 我只是 惊讶 对可能性的简单性代号一个。我根本没想到这会这么容易。

这个类和方法是您只需将 pdf 文件保存到 FileSystemStorage 所需的全部内容。

import com.codename1.io.Util;

public class PDFHandler {

private final static String URL="http://api.html2pdfrocket.com/pdf";
private final static String APIKEY = "<YOURAPI-KEY>";


/**
 * Stores given HTML String or URL to Storage with given filename
 * @param value URL or HTML add quote if you have spaces. use single quotes instead of double
 * @param filename
 */
public void getFile(String value,String filename){
    // Validate parameters
    if(value==null||value.length()<1) 
        return;
    if(filename==null||filename.length()<1)
        return;
    //Encode
    value = Util.encodeUrl(value);

    String fullPathToFile = FileSystemStorage.getInstance().getAppHomePath()+filename;
    Util.downloadUrlToFileSystemInBackground(URL+"?apikey="+APIKEY+"&value="+value, fullPathToFile);
}

}

我希望这对其他代号新手有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多