用Scala语言生成HTML到PDF

用Scala语言生成HTML到PDF,scala,pdf-conversion,Scala,Pdf Conversion,我已经用JAVA从HTML生成Pdf,效果很好。 但我需要用“scala”来完成这个。尽管我像在JAVA中那样导入了所有JAR,但IText渲染器还是出现了一个问题。 请建议我以同样的方式实现输出 Java代码: import java.io.*; import com.lowagie.text.DocumentException; import org.xhtmlrenderer.pdf.ITextRenderer; public class Htmltopdf_hcue { pu

我已经用JAVA从HTML生成Pdf,效果很好。 但我需要用“scala”来完成这个。尽管我像在JAVA中那样导入了所有JAR,但IText渲染器还是出现了一个问题。 请建议我以同样的方式实现输出

Java代码:

import java.io.*;
import com.lowagie.text.DocumentException;
import org.xhtmlrenderer.pdf.ITextRenderer;

public class Htmltopdf_hcue {

    public static void main(String[] args) throws IOException, DocumentException {
        String File_To_Convert = "F:/Pdf_Generation/Appointment Schedule_Fair_Edit.html";
        //String File_To_Convert = "C:/Users/hCue/Desktop/img.html";        
        String url = new File(File_To_Convert).toURI().toURL().toString();
        System.out.println(""+url);
        String HTML_TO_PDF = "F:/Pdf_Generation/TheEndPDF344444444444.pdf";
        OutputStream os = new FileOutputStream(HTML_TO_PDF);
        ITextRenderer renderer = new ITextRenderer();
        renderer.setDocument(url);      
        renderer.layout();
        renderer.createPDF(os);        
        os.close();
    }   
}
import java.awt.image.BufferedImage
import java.io.File

import java.io.FileOutputStream
import java.io.FileInputStream
import java.io.InputStreamReader
import java.net.URL
import javax.imageio.ImageIO
import java.io
import com.lowagie.text.DocumentException;
import org.xhtmlrenderer.pdf.ITextRenderer;
import org.xhtmlrenderer.pdf.ITextTextRenderer
object Hello{
    def main(args: Array[String]) { 
    var fos: FileOutputStream = null
    val File_To_Convert  ="F:/Pdf_Generation/Appointment Schedule_Fair_Edit.html";
    val url = new File(File_To_Convert).toURI().toURL().toString();
    val HTML_TO_PDF = "F:/Pdf_Generation/TheEndPDF344444444444.pdf";
    fos = new FileOutputStream(HTML_TO_PDF);
    ITextRenderer renderer = new ITextRenderer();/*Getting Error as Value renderer is not a member object of org.xhtmlrenderer.pdf.ITextRenderer */
        renderer.setDocument(url);      
        renderer.layout();
        renderer.createPDF(fos);  
        fos.close();

    } 

}
Scala代码:

import java.io.*;
import com.lowagie.text.DocumentException;
import org.xhtmlrenderer.pdf.ITextRenderer;

public class Htmltopdf_hcue {

    public static void main(String[] args) throws IOException, DocumentException {
        String File_To_Convert = "F:/Pdf_Generation/Appointment Schedule_Fair_Edit.html";
        //String File_To_Convert = "C:/Users/hCue/Desktop/img.html";        
        String url = new File(File_To_Convert).toURI().toURL().toString();
        System.out.println(""+url);
        String HTML_TO_PDF = "F:/Pdf_Generation/TheEndPDF344444444444.pdf";
        OutputStream os = new FileOutputStream(HTML_TO_PDF);
        ITextRenderer renderer = new ITextRenderer();
        renderer.setDocument(url);      
        renderer.layout();
        renderer.createPDF(os);        
        os.close();
    }   
}
import java.awt.image.BufferedImage
import java.io.File

import java.io.FileOutputStream
import java.io.FileInputStream
import java.io.InputStreamReader
import java.net.URL
import javax.imageio.ImageIO
import java.io
import com.lowagie.text.DocumentException;
import org.xhtmlrenderer.pdf.ITextRenderer;
import org.xhtmlrenderer.pdf.ITextTextRenderer
object Hello{
    def main(args: Array[String]) { 
    var fos: FileOutputStream = null
    val File_To_Convert  ="F:/Pdf_Generation/Appointment Schedule_Fair_Edit.html";
    val url = new File(File_To_Convert).toURI().toURL().toString();
    val HTML_TO_PDF = "F:/Pdf_Generation/TheEndPDF344444444444.pdf";
    fos = new FileOutputStream(HTML_TO_PDF);
    ITextRenderer renderer = new ITextRenderer();/*Getting Error as Value renderer is not a member object of org.xhtmlrenderer.pdf.ITextRenderer */
        renderer.setDocument(url);      
        renderer.layout();
        renderer.createPDF(fos);  
        fos.close();

    } 

}
构建.sbt

//resolvers += "Typesafe repository" at "https://repo.typesafe.com/typesafe/releases/"
// The Typesafe repository
//resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"
resolvers += "Sonatype snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"
// The Play plugin
//addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.7")
// Use the Play sbt plugin for Play projects
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % Option(System.getProperty("play.version")).getOrElse("2.3.1"))
// web plugins
addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.1")
addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.1")
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.0.0")
addSbtPlugin("com.github.play2war" % "play2-war-plugin" % "1.3-beta1")

提前谢谢你

将渲染定义为
val

import java.awt.image.BufferedImage
import java.io.File

import java.io.FileOutputStream
import java.io.FileInputStream
import java.io.InputStreamReader
import java.net.URL
import javax.imageio.ImageIO
import java.io
import com.lowagie.text.DocumentException
import org.xhtmlrenderer.pdf.ITextRenderer

object Hello{
  def main(args: Array[String]) {
    var fos: FileOutputStream = null
    val File_To_Convert  ="F:/Pdf_Generation/Appointment Schedule_Fair_Edit.html"
    val url = new File(File_To_Convert).toURI().toURL().toString()
    val HTML_TO_PDF = "F:/Pdf_Generation/TheEndPDF344444444444.pdf"
    fos = new FileOutputStream(HTML_TO_PDF)
    val renderer = new ITextRenderer()
    renderer.setDocument(url)
    renderer.layout()
    renderer.createPDF(fos)
    fos.close()

  }

}

您会收到什么错误消息?ITextRenderer=newitextrenderer()/*值呈现器不是对象org.xhtmlrenderer.pdf.ITextRenderer*/renderer.setDocument(url)的成员;/*未找到值renderer*/renderer.layout();/*未找到值渲染器*/renderer.createPDF(os);/*找不到值渲染器*/非常感谢@FaigB。这对我来说真的很有效。。!您好@FaigB,对于独立程序来说,它工作得很好,但实际上我有scala项目。但是当我编译整个项目的时候。我收到以下错误:[error]F:\WorkSpacescala\helper\hcueDocuments.scala:37:对象lowagie不是包com的成员[error]import com.lowagie.text.DocumentException;[error]^[error]F:\WorkSpace\scala\helper\hcueDocuments.scala:38:object xhtmlrenderer不是包组织的成员[error]import org.xhtmlrenderer.pdf.ITextRenderer;[error]^[error]F:\WorkSpace\scala\helper\hcueDocuments.scala:102:未找到:键入ITextRenderer[error]var renderer=new ITextRenderer()[error]^[error]发现三个错误[error](编译:编译)编译失败已将所需的JAR导入到项目中。。!出现此问题的可能性有多大?build.sbt的外观如何?