如何使用Java将LinkedIn个人资料下载/保存为PDF文件?

时间:2017-10-12 08:27:24

标签: java rest api jsoup linkedin

我有一个LinkedIn个人资料的URL列表,我想使用Java下载/保存所有这些URL文件。到目前为止,我已经设法下载了配置文件的html版本,由于某种原因甚至无法使用浏览器打开。我使用了 JSoup 库,这是我得到的代码:

public static void main(String arg [])
{
    try {

        String url = "https://www.linkedin.com/uas/login?goback=&trk=hb_signin";
        Connection.Response response = Jsoup
                .connect(url)
                .method(Connection.Method.GET)
                .execute();

        Document responseDocument = response.parse();
        Element loginCsrfParam = responseDocument
                .select("input[name=loginCsrfParam]")
                .first();

        response = Jsoup.connect("https://www.linkedin.com/uas/login-submit")
                .cookies(response.cookies())
                .data("loginCsrfParam", loginCsrfParam.attr("value"))
                .data("session_key", "user@name.com")
                .data("session_password", "aPassWord")
                .method(Connection.Method.POST)
                .followRedirects(true)
                .execute();

        Connection.Response aResponse = Jsoup.connect("ProfileURL").cookies(response.cookies()).method(Connection.Method.GET).execute();
        Document aResponseDocument = aResponse.parse();

        try
        {
            FileWriter fileWriter = new FileWriter("C:/Users/userName/Desktop/DownLoadedProfile.html", false);
            BufferedWriter bufferedWriter= new BufferedWriter(fileWriter);

            bufferedWriter.write(aResponseDocument.getAllElements().toString());
            bufferedWriter.newLine();
            bufferedWriter.close();
        }
        catch(Exception e)
        {

        }

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

如果可能,我如何扩展此代码以调用(保存到PDF)选项并下载配置文件?

1 个答案:

答案 0 :(得分:2)

您可以使用一些可以将html转换为pdf的免费java库,例如jPDFWriter。这是一个例子:

import com.qoppa.pdfWriter.PDFDocument;
...
File f1 = new File ("c:/htmlsamplepage.html");
pdfDoc = PDFDocument.loadHTML(f1.toURI().toURL(), new PageFormat (), false);
pdfDoc.saveDocument ("c:\\output.pdf");