[xhtml] server side printen-> de oplossing voor pdf maken?

Pagina: 1
Acties:

  • Whiskeyjack
  • Registratie: Maart 2004
  • Laatst online: 05-05 21:50
Hallo,

ik zit al een tijdje te kloten met het probleem van het printable maken van xml/xhtml. Ik heb dus een xml document dat ik m.b.v. een xsl stylesheet omzet in xhtml. Merk op dat ik voor het formatten geen xsl-fo gebruik, aangezien ik dit zoals ik het nu zie vrij onoverzichtelijk vind. In plaats daarvan gebruik ik CSS.

Het uiteindelijke doel is dus een printable document maken in de gewenste stijl. Het gewoon printen van (X)html zou ook een optie zijn, ware het niet dat standaard documenten geprint worden zonder achtergrond kleuren / plaatjes. Dit resulteert in een print zoals hij niet bedoeld is.

Nu kwam ik er achter dat er een hele mooie optie in browsers zit, namelijk: print with background colors. Met deze optie aan komt het document precies hetzelfde uit de printer als dat het op het scherm staat.
Echter, deze staat standaard uit. Een optie is natuurlijk om alle gebruikers die mijn document willen uitprinten te instrueren om deze optie aan te zetten, maar dit is natuurlijk vrij bagger.

Een andere optie is om de xml/html/xhtml op 1 of andere manier om te zetten naar PDF waarna de gebruiker deze PDF kan printen. Er bestaan allerhande (vaak commerciele) tools om dit server side te doen, zoals FOP, dat wel gratis is. Echter, probleem is vaak dat elke regel in je document wordt omgezet naar een PDF equivalent. Dit resulteert in een vaak net ander resultaat in PDF als in html.

Dit probleem is er niet als een print-to-pdf plugin wordt gebruikt, het resultaat hiervan is precies hetzelfde als wat er op het scherm te zien is (als de print-background-colors optie aanstaat). Dit lijkt me dan ook de gemakkelijkste optie om pdf documenten te creeren.

Ik hoop dat mijn probleem nog een beetje te volgen is, nu kom ik bij mijn eigelijke vraag: heeft iemand ervaring met server-side printing, en dan naar PDF documenten?
Mijn idee is dus dat clients de opdracht tot het printen geven, waarna de server een bepaalde html pagina naar PDF print, exact zoals de pagina er op het beeld uitziet.

edit:
ik weet niet in welke rubriek dit topic het beste past. Behalve xml/xhtml heeft mijn vraag zeker met scripting te maken, maar als jullie het ergens andere beter vinden passen, so be it

[ Voor 6% gewijzigd door Whiskeyjack op 22-06-2005 16:14 ]


  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Ik vind het een enorme omslachtige oplossing. :) Een beter idee zou imho zijn, om de tekst (dus de content) te scheiden en die zonder eerst via de client heen en weer te sturen aan de te bieden via verschillende media. Je maakt dan een xhtml template en een pdf framework / layout die precies overeenkomt (wat overigens nooit 100% het geval kan zijn), waarin je nieuwe content eenvoudig kan parsen c.q. stoppen, zodat de client uiteindelijk alleen maar hoeft te kiezen voor de manier waarop hij informatie wil. Dat scheelt je een hoop overhead op de server en omslachtig gedoe. ;)

Sundown Circus


  • Whiskeyjack
  • Registratie: Maart 2004
  • Laatst online: 05-05 21:50
dit zou dan inhouden dat je dus voor voor xhtml en pdf een apparte stylesheet zou moeten maken, die wel precies hetzelfde resultaat moeten maken?

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Whiskeyjack schreef op woensdag 22 juni 2005 @ 16:16:
dit zou dan inhouden dat je dus voor voor xhtml en pdf een apparte stylesheet zou moeten maken, die wel precies hetzelfde resultaat moeten maken?
Jup. :) Alhoewel pdf volgens mij geen stylesheets kent, maar vast wel andere opmaakmogelijkheden. :)

Sundown Circus


  • Whiskeyjack
  • Registratie: Maart 2004
  • Laatst online: 05-05 21:50
Er bestaan best veel tools om PDF te maken vanuit XSL-FO (xsl-formatting). Alleen, zoals ik al zei, xsl-fo sux.

  • PowerFlower
  • Registratie: Juni 2001
  • Laatst online: 16:32

PowerFlower

être diable et jouer fleur

Geez RedRose. Jij werkt tegenwoordig zeker veel met een of ander XML/XSLT CMS, of niet? :P

Kun je overigens niet gewoon een alternate stylesheet gebruiken?

code:
1
2
3
4
5
6
7
8
9
10
11
12
<link
  rel="alternate stylesheet"
  type="text/css"
  href="/styles/CSStandard.css"
  media="all"
  title="Print preview" />
<link
  rel="alternate stylesheet"
  type="text/css"
  href="/styles/CSPrint.css"
  media="all"
  title="Print preview" />

[ Voor 35% gewijzigd door PowerFlower op 22-06-2005 16:31 ]


  • Whiskeyjack
  • Registratie: Maart 2004
  • Laatst online: 05-05 21:50
het is juist de bedoeling dat een geprinte pagina er precies hetzelfde uitziet als op het scherm. Volgens mij is dat met CSS niet te bereiken, aangezien alle background-colors en background pictures genegeerd worden. Druk maar eens op print preview op je browser.

  • KurtDB
  • Registratie: Juni 2004
  • Laatst online: 09-02 20:28
Whiskeyjack schreef op woensdag 22 juni 2005 @ 16:41:
het is juist de bedoeling dat een geprinte pagina er precies hetzelfde uitziet als op het scherm. Volgens mij is dat met CSS niet te bereiken, aangezien alle background-colors en background pictures genegeerd worden. Druk maar eens op print preview op je browser.
Dat print preview je stylesheet niet gebruikt ligt eerder aan je browser, hoor. Maak maar eens 'n print stylesheet en print dan eens je pagina af? Hij zou die instellingen van de stylesheet dan moeten behouden, hoor. En anders heb je 'n slechte browser... en daarvoor ga ik geen namen noemen. :)

  • Whiskeyjack
  • Registratie: Maart 2004
  • Laatst online: 05-05 21:50
KurtDB schreef op woensdag 22 juni 2005 @ 17:00:
[...]


Dat print preview je stylesheet niet gebruikt ligt eerder aan je browser, hoor. Maak maar eens 'n print stylesheet en print dan eens je pagina af? Hij zou die instellingen van de stylesheet dan moeten behouden, hoor. En anders heb je 'n slechte browser... en daarvoor ga ik geen namen noemen. :)
Bij het printen leest hij de stylesheet wel hoor. Alleen hij negeert de background-color opties, hetgeen op zich niet zo vreemd is. Anders is het printen van een zwarte website nogal duur.

En ja ik gebruik internet explorer (heb ook firefox geinstalleerd) net als de andere 70% van de internet gebruikers.

  • PowerFlower
  • Registratie: Juni 2001
  • Laatst online: 16:32

PowerFlower

être diable et jouer fleur

Is dat wel echt zo, dat hij in een specifieke print style de achtergronden nog steeds negeert? Ik ga dat morgen eens testen.

Los daarvan, je moet - als je een alternate stylesheet maakt voor de printer - natuurlijk gewoon een afdrukbare vormgeving maken die anders is dan je website. D.w.z., het heeft weinig zin om animated gifs, forms, links e.d. als quasi-aanklikbare dingen uit te printen. Kijk eens naar de print preview van deze pagina: http://algonquinstudios.com/Home/Tech Ik vind dat nogal een nette oplossing eigenlijk.

  • Whiskeyjack
  • Registratie: Maart 2004
  • Laatst online: 05-05 21:50
ik heb al een goede oplossing gevonden: pdf995. Met deze virtuele printer kun je elke willekeurige HTML pagina naar pdf printen.

Hij kan namelijk gebruik maken van de html-parser van Internet Explorer en er zit ook nog een optie in om met achtergronden te printen. Daarbij zit er ook een hotfolder programmatje bij en bestaat de mogelijkheid om met javascript de tool aan te roepen.

Kortom, dit pdf995 is gewoon fantastisch. Veel beter dan alle andere pdf tools die ik inmiddels al geprobeerd heb en nog goedkoop ook. Het is ook veel logischer om een niveautje lager te gaan zitten bij een PDF writer. Dus gewoon internet explorer het werk laten doen en direct naar pdf printen wat eruit komt. Dit garandeert een exacte kopie van wat er op het scherm te zien is.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

PowerFlower:
Is dat wel echt zo, dat hij in een specifieke print style de achtergronden nog steeds negeert?
Ja.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1