Zum Inhalt springen

Pdf Generator 2

Erstellt am 21. Februar 2007 · 12 Antworten · letzte Antwort am 5. August 2010

Tags: Frage

Boeni ·

Hallo Forum!

Will für meine Seite einen PDF download für jede Seite anbieten und hab deshalb den PDF Generator installiert. Hat auch so weit alles funktioniert nur bietet das System mir keine PDFs an sondern eine index.php. Wenn ich die index.php dann lokal in z.b meine_home.pdf umbenenne, dann funktioniert alles perfekt! Nun was mache ich falsch?
Will doch nur das diese kleinigkeit, das durch klick auf das PDF Symbol die Seite als PDF zum download angeboten wird.

Hier mal mein Code :

###Pdf ausgeben
pdfCreator = TEXT
pdfCreator {
	value = Druckversion der aktuellen Seite
	postUserFunc = tx_pdfgenerator2->makePdfLink
	postUserFunc.include_post_vars = 1
	postUserFunc.target = _blank
	postUserFunc.popup = 0
	postUserFunc.no_blur = 1
	postUserFunc.attachment = 2
}

und meine .htaccess

RewriteEngine On
RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule .* /index.php

Ich arbeite mit Realurl und typo 4.0.2 - Provider Domain Factory!
Gute Nacht - geh jetzt erstmal schlafen. Vielleicht hab ich ja einen Geistesblitz heute Nacht

Boeni ·

Servus! Ichb in nochmal!!

Also - da mich das Problem nicht in Ruhe lässt hier meine Änderungen!
Hier habs jetzt soweit gebracht, das ich vielleicht das Problem einkreisen kann.

Hab jetzt meine .htaccess geupdatet wie es im Manuell steht :

RewriteEngine On
RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* /index.php
RewriteRule   ^[^/]*\.html$  index.php
RewriteRule   ^[^/]*\.pdf$  index.php

ER zeigt jetzt zwar in der URL Leiste nicht den Namen, aber immerhin die ID Nummer+ pdf ( z.b .../11.pdf?attachment=2 ). Das is in Ordnung! Aber da hört es auch schon auf, in ordnung zu sein!!! Es bringt folgenden Fehler :
Error!

Reason: Segment "11.pdf" was not a keyword for a postVarSet as expected!

Hängt das ganze dann mit der localconf zusammen? Hier definiere ich ja für realUrl alle postVarSets....hmmm. Hat jemand eine Idee?
Grüße und Danke

Nicole87 ·

Auch 3 Jahre später habe ich mit PDF_Generator2 genau das selbe Problem...

Kann inzwischen jemand helfen?:o

Grüße
Nicole

lisardo ·

Das ist ein bekanntes Problem, immer wenn über PHP eine Datei generiert wird tritt das in einigen Browsern auf, trotz Übergabe des korrekten Mime-Types. Eine Lösung ist, an die URL, die das PDF generiert, einen Parameter mit dem Namen der Datei anzuhängen:

&filename=meine-datei.pdf

Dann müssten eigentlich alle Browser die Datei auch mit diesem Namen speichern. Über RealUrl bzw. über ein Anpassung der config-Datei von RealUrl müsste es auch möglich sein, das so zu übergeben:

/filename/meine-datei.pdf

Das habe ich allerdings noch nicht gemacht, mir reicht die obige Lösung.

Gruß
Peter

Nicole87 ·

Hi!

Das geht nun soweit, allerdings würde ich noch gerne wissen, wie man das Template erstellt, bzw. wie das aussehen kann (mit Markern und so). Habe eine Vorlage erstellt, das mit TV gemappt und es als Unterelement vom Roottemplate und für die PDF-Version eingestellt.
Neben pdf_generator2 habe ich noch pdf_generator2_fonts und tv_pdfgen installiert.

Ich bekomme die Ausgabe vom Inhalt aus irgendeinem Grund den ich nicht verstehe, aber meine CSSformatierung greift nicht und ich weiß nicht, wie ich das einstelle.
Im ext-template, das ich für das PDF erstellt habe steht hierzu:

pdf_generator = PAGE
pdf_generator {    
   includeCSS.file1 = http://localhost:8508/fileadmin/templates/css/pdf.css    
   includeCSS.file1.media = print       
  config {
      typeNum = {$extension.pdf_generator2.typeNum}     
      pageGenScript = EXT:pdf_generator2/gen_pdf.php       
      admPanel = 0      
      xhtml_cleaning = 0       
      USERNAME_substToken =       
      ftu = 0       
      disableCharsetHeader = 1       
      prefixLocalAnchors = 0
   }   
   50 >    
   50 = USER    
   50.userFunc = tx_templavoila_pi1->main_page    
   50.childTemplate = pdf #Templatetyp des Templavoila-Subtemplates, nicht der Name !!
}

Es greift ein bisschen aber nicht vollkommen... Wo kann da ein Fehler sein?

Außerdem kann ich keine Seiten mit Plugins wie Formular, Kalender oder News als PDF ausgeben....

Bin für jeden Hinweis dankbar 🙂

Gruß
Nicole

Nicole87 ·

Hallo! Ich nochmal...

Inzwischen bekomme ich keine Ausgabe mehr sondern nur dir Fehlermeldung "File was not found (2)" und mein Seiteninhalt wird gedoppelt...

Ich poste mal meine Sachen:

.htaccess

#PDF-Generator
#RewriteRule .* index.php [L]
#RewriteRule   ^[^/]*\.html$  index.php
#RewriteRule   ^[^/]*\.pdf$  index.php

ErrorDocument 404 /error.html 
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule   ^typo3$  /typo3/index_re.php
RewriteRule   ^[^/]*\.html$  index.php
RewriteRule   ^[^/]*\.pdf$  index.php

Extentiontemplate-Setup:

pdf = TEXT 
pdf { 
     value = Diese Seite als PDF
     postUserFunc = tx_pdfgenerator2->makePdfLink 
     postUserFunc.target = _blank 
    # postUserFunc.include_post_vars = 1
     typolink.additionalParams.insertData = 1
    # typolink.parameter.data = page:uid
    # typolink.additionalParams =&type=123
    # postUserFunc = tx_pdfgenerator2->makePdfLink
}
lib.pdf < pdf


pdf_generator2 = PAGE
pdf_generator2 {
  typeNum = 123
  use_pdflib = 0
  config {
      pageGenScript = EXT:pdf_generator2/gen_pdf.php
      simulateStaticPdf  = 1
      cssmedia = all
      pdf_generator2.size = A4
  }
  includeCSS.file1 = fileadmin/templates/css/pdf.css
  includeCSS.file1.import = 0
  includeCSS.file1.media = all
  includeCSS.file2 = fileadmin/templates/css/content.css
  includeCSS.file2.import = 0
  includeCSS.file2.media = all
    50 = CONTENT
    50 {
        table = tt_content
        select.orderBy = sorting
        select.where = colPos = 0
        select.languageField = sys_language_uid
    }
}

HTML-Template:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

<body style="background-color:red;">
<!-- ###DOCUMENT### -->
    <!--TYPO3SEARCH_begin-->
    ###RSYS_CONTENT_0###   
    <div class="printlink">###RSYS_PDFLINK###</div>
<!-- ###DOCUMENT### --> 

###BREADCRUMBS###
<div class="left_side">###LEFT###</div>
<div class="content">###CONTENT###</div>
<div class="right_side">###RIGHT###</div>
###FOOTER###
   
</body>
</html>

Außerdem habe ich das obige Template mit TemplaVoilà gemappt und diese Daten als PDF und Unterobjekt des Haupttemplates gespeichert.

Ich arbeite mit:
TYPO3 4.3.3
pdf_generator2 0.5.2
pdf_generator2_fonts 0.0.1
tv_pdfgen 1.1.1

Kann mir bitte jemand sagen, wie ich zumindest wieder eine PDF-Ausgabe erwirke?

Ich bin für jeden Hinweis dankbar!

Grüße
Nicole

tricycle ·

Hallo,
also ich bekomm es einfach nicht hin aus der index.php eine index.pdf zu erzeugen. #angry#

wo muss ich den genannten codeschnipsel "&filename=meine-datei.pdf" einbinden?
ich arbeite mit:
typo3 4.4.0
pdf_generator2 0.5.2
pdf_generator2_fonts 0.0.1
tv_pdfgen 1.1.1
cooluri

Grüße tri

tricycle ·

Hallo,
also ich bekomm es einfach nicht hin aus der index.php eine index.pdf zu erzeugen. #angry#

wo muss ich den genannten codeschnipsel "&filename=meine-datei.pdf" einbinden?
ich arbeite mit:
typo3 4.4.0
pdf_generator2 0.5.2
pdf_generator2_fonts 0.0.1
tv_pdfgen 1.1.1
cooluri

# ---------- PDF GENERATOR ----------
pdf_generator = PAGE
pdf_generator {
  typeNum = 123
  use_pdflib = 0
  
  config {
    pageGenScript = EXT:pdf_generator2/gen_pdf.php
    simulateStaticPdf  = 1
    cssmedia = all
    pdf_generator2.size = A4
  }
 
  includeCSS.file1 = fileadmin/templates/css/dtp_print.css
  includeCSS.file1.import = 0
  includeCSS.file1.media = all
   
  10 = TEMPLATE
 10 {  
    template = FILE

    // Template HTML personnalisé pour l'affichage des colonnes dans le pdf                       
    template.file = fileadmin/templates/ext/pdf_form.html
 
    workOnSubpart = DOCUMENT_BODY
    marks.INHALT = CONTENT
    marks.INHALT {
              
      table = tt_content
      select {
        orderBy = sorting
        where = colPos = 1
        #languageField = sys_language_uid
       
      }
    }
    
  }
}

#Wichtig wenn der Content im html-Template angegeben wird da sonst der Inhalt zwei mal angezeigt wird
pdf_generator.50.select.where = colPos=
# ---------- end PDF GENERATOR ----------
//Pdf ausgeben
lib.pdfbtn = IMAGE
lib.pdfbtn {
  file = fileadmin/templates/images/btn_expose.png
  file.width = 117
  file.height = 20
  stdWrap.postUserFunc.target = _blank
  stdWrap.postUserFunc = tx_pdfgenerator2->makePdfLink
  
  stdWrap.postUserFunc.parameter.data = page:uid
  stdWrap.postUserFunc.additionalParams.insertData=1
  stdWrap.postUserFunc.additionalParams =&type=123
  
}
lib.pdfbtn < pdf
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Expose</title>
</head>

<body>
	<!-- ###DOCUMENT_BODY### --> 
	<div id="header_form">
    	<div id="header_linie_pdf"></div>
    	<div id="logo_pdf"></div>
	</div>
    
    <div id="CONTENT_pdf">
    
    	###INHALT###
    
    </div>
    <!-- ###DOCUMENT_BODY### --> 
    
</body>
</html>

Grüße tri

Nicole87 ·

Hi tri!

Falls es dich tröstet: Ich bekomme inzwischen auch keine anständige Ausgabe mehr.

pdf = TEXT
pdf {
     value = Diese Seite als PDF
     postUserFunc = tx_pdfgenerator2->makePdfLink
     postUserFunc.target = _blank
     postUserFunc.include_post_vars = 1
     typolink.additionalParams =&type=123
     typolink.additionalParams.insertData = 1
#    typolink.parameter.data = page:uid #Wenn das hier eingeblendet, dann kein neues Fenster und kein PDF
}
lib.pdf < pdf

Mit diesem Code wird aus meinem shop.html ein shop.pdf.

Sonst habe ich in meinem Script noch:

pdf_generator2 = PAGE
pdf_generator2 {
  stylesheet = fileadmin/templates/css/layout.css
  #ist die gleiche, die bei der Extensioninstallation angegeben wird
  typeNum = 123 
  size = A4
  pdfversion = 1.3
  target= _blank
  
 50 >  
 50 = USER
 50.userFunc = tx_templavoila_pi1->main_page
 50.childTemplate=pdf
}
pdf_generator.60.select.where = colPos=

Stehen, aber wie gesagt, ich bekomme keine Ausgabe. Nur "Reason: File "shop.pdf" was not found (2)!" - wenn jemand weiß, wie ich mein PDF generieren kann, wäre ich sehr dankbar....

Gruß
Nicole

tricycle ·

hi nicole,
hmmmm trösten tuts mich net wirklich 😢 und der kunde tritt mir trotzdem in a #giggle#

ich hab cool uri deinstalliert und die konfiguration soweit belassen.
also mit meiner jetztigen konfiguration und simulateStaticPdf funktioniert es.

Nur brauch ich jetzt ne andere lösung für saubere urls.

gruß tri

Nicole87 ·

Moin!

Mein Problem ist noch immer nicht geklärt.

Ich habe nun noch einmal einen Schritt zurück gemacht und mein RealURL deaktiviert.

Nun läuft noch pdf_generator2, pdf_generator2_fonts und tv_pdfgen.

Die Meldung, die nun beim PDF (z.B. 66.pdf bei der Seite mit der ID 66) kommt:
Error while trying the pdfconversion
Maybe the gen_pdf.php script was not executed at all.

Wie ich das beheben kann weiß ich leider nicht. Habe die Extentions nochmal gepdatet, den Update-Knopf gedrückt und de- und installiert...

Bitte um Hilfe! 🙂

Gruß
Nicole

Nicole87 ·

Hi tri!

Ich weiß nichtmal was das ist... #paralyzed#

Aber im Extentionmanager ist nichts dergleichen zu finden....

Gruß
Nicole