2016-07-11 10 views
0

Ich versuche, dieses Beispiel zu implementieren: https://knoldus.wordpress.com/2016/05/20/play2-pdf-plugin-js-enabled-and-disabled-browser/?iframe=true&theme_preview=true pdf in meiner Anwendung zu erzeugen, so dass dies mein Controller scala ist:Wert ToBytes ist kein Mitglied des Objekt it.innove.play.pdf.PdfGenerator Spiel Rahmen 2.4

package controllers 

import it.innove.play.pdf.PdfGenerator 

import javax.inject.{ Inject, Named } 
import com.mohiva.play.silhouette.api.{ Environment, LogoutEvent, Silhouette } 
import com.mohiva.play.silhouette.impl.authenticators.CookieAuthenticator 
import play.api.i18n.{ I18nSupport, MessagesApi, Messages } 
import play.api._ 
import play.api.mvc._ 
import scala.concurrent.Future 
import play.api.libs.json._ 
import play.api.Play.current 
import models.silhouette.User 
import scala.util.{ Try, Success, Failure } 
import forms._ 
import utils._ 

import play.api.libs.concurrent.Execution.Implicits.defaultContext 
import play.api.Configuration 

class Application @Inject() (val messagesApi: MessagesApi, 
    val env: Environment[User, CookieAuthenticator], 
    configuration: Configuration) extends Silhouette[User, CookieAuthenticator] with I18nSupport { 

    def homepage: Action[AnyContent] = Action { implicit request => 
    Ok(PdfGenerator.toBytes(views.html.index("Your PDF is generated"), "http://localhost:9000")).as("application/pdf") 
    } 
} 

mein Index:

@(message: String) 
@printPdf("Welcome") { 
    Image: <img src="/public/images/favicon.png"/><br/> 
    Hello world! <br/> 
    @message 
} 

PrintPDF:

@(title: String)(content: Html) 
<html lang="en"> 
    <head> 
     <title>@title</title> 
     <link rel="stylesheet" media="print" 
      href="@routes.Assets.versioned("stylesheets/main.css")"> 
     </head> 
     <body> 
      <div> 

      </div> 
      <div class="content-text" > 
       @content 
      </div> 
      <div> 

      </div> 
     </body> 
    </html> 

meine Abhängigkeiten:

libraryDependencies ++= Seq(
    "net.codingwell" %% "scala-guice" % "4.0.1", 
    "org.reactivemongo" %% "reactivemongo" % "0.11.10", 
    "org.reactivemongo" %% "play2-reactivemongo" % "0.11.10", 
    "com.mohiva" %% "play-silhouette" % "3.0.0", 
    "net.ceedubs" %% "ficus" % "1.1.2", 
    "com.adrianhurt" %% "play-bootstrap3" % "0.4.4-P24", 
    filters, 
    cache, 
    ws, 
    specs2 % Test, 
    "org.scalatest" %% "scalatest" % "2.2.4" % Test, 
    "com.typesafe.play" %% "play-mailer" % "4.0.0", 
    "it.innove" % "play2-pdf" % "1.4.0", 
    "org.webjars" %% "webjars-play" % "2.5.0", 
    "com.typesafe.play" %% "anorm" % "2.4.0") 
+0

Was ist Ihr Problem? Wird es nicht kompiliert oder gibt es ein Laufzeitproblem? – irundaia

+0

Problem kompilieren Ich bekomme diesen Fehler: Wert toBytes ist kein Mitglied des Objekts it.innove.play.pdf.PdfGenerator – Rajeun

Antwort

0

Sie versuchen, statisch auf eine nicht statische Methode zuzugreifen. PdfGenerator.toBytes(???) ist keine statische Methode. Wenn Sie es in new PdfGenerator().toBytes(???) ändern, wird Ihr Kompilierproblem gelöst. In Ihrem Fall:

def homepage: Action[AnyContent] = Action { implicit request => 
    Ok(new PdfGenerator().toBytes(views.html.index("Your PDF is generated"), "http://localhost:9000")).as("application/pdf") 
} 
+0

vielen Dank !!!! Du hast meinen Tag gerettet – Rajeun

+0

Gern geschehen :) – irundaia