• Willkommen im Zend Framework Forum

    ZF1 Zend Framework 1 + ZF2 Zend Framework 2

    Das Zend Framework Forum ist seit 2006 die erste Anlaufstelle für Zend Framework Entwickler in Deutschland. Mit über 70.000 Beiträgen und einer steigenden Nutzerzahl bietet das Forum hilfreiche Themen und ZF-Tutorials für professionelle Entwickler, fortgeschrittene Programmierer sowie Zend Framework Einsteiger.
    Wenn dies Dein erster Besuch in der Zend Framework Community ist, lies bitte zuerst die Hilfe - FAQ durch. Du musst Dich registrieren, bevor Du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um die Registrierung zu starten. Du kannst auch jetzt schon Beiträge lesen. Hier im Forum findest Du die Zend Framework Hilfe, die Du suchst!

    Grüße an alle Zend Framework Entwickler. Das Team vom Zend Framework Forum!

    Drupal Agentur

DOMPDF macht keinen BLOCKSATZ

z3nd0r

New member
Hi,

muss mich in DOMPDF einarbeiten. Bekomme einfach keinen Blocksatz (justify) hin. Was mach ich falsch?
Denn hier scheint es zu funktionieren: http://pxd.me/dompdf/dompdf.php?base_path=www/test/&options[Attachment]=0&input_file=css_text_align.html

Die Seite die umgewandelt werden soll:
Code:
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>ZF2 Skeleton Application</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!-- Le styles -->
        <link href="/css/bootstrap.min.css" media="screen" rel="stylesheet" type="text/css">
<link href="/css/bootstrap-theme.min.css" media="screen" rel="stylesheet" type="text/css">
<link href="/css/style.css" media="screen" rel="stylesheet" type="text/css">
<link href="/img/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon">
        <!-- Scripts -->
        <!--[if lt IE 9]><script type="text/javascript" src="/js/html5shiv.js"></script><![endif]-->
<!--[if lt IE 9]><script type="text/javascript" src="/js/respond.min.js"></script><![endif]-->
<script type="text/javascript" src="/js/jquery.min.js"></script>
<script type="text/javascript" src="/js/bootstrap.min.js"></script>
    </head>
    <body>
        <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
            <div class="container">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>
                    <a class="navbar-brand" href="/"><img src="/img/zf2-logo.png" alt="Zend Framework 2"/> Skeleton Application</a>
                </div>
                <div class="collapse navbar-collapse">
                    <ul class="nav navbar-nav">
                        <li class="active"><a href="/">Home</a></li>
                    </ul>
                </div><!--/.nav-collapse -->
            </div>
        </nav>
        <div class="container">
            <div id='obj_14f17833d6a2' style='position:absolute;top:0px;left:2px;overflow:hidden;background-color:white;width:593px;height:840px;'>
    <div id='obj_14f17835edd4' style='position:absolute;top:10px;left:10px;overflow:hidden;background-color:lightblue;border:1px dotted grey;width:573px;height:478px;'>
        <div id='obj_14f17839941a' style='text-align: justify;font-family:Helvetica;font-size:40px;color:black;text-align:left; '>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.


            Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.


            
</div>


            <hr>
            <footer>
                <p>© 2005 - 2015 by Zend Technologies Ltd. All rights reserved.</p>
            </footer>
        </div> <!-- /container -->
            </body>
</html>

Die Action die mein HTML umwandelt (etwas chaotisch, sorry, gammel da schon den ganzen Abend dran rum..
Code:
public function pdfAction()    {
        // disable DOMPDF's internal autoloader if you are using Composer
        define('DOMPDF_ENABLE_AUTOLOAD', false);
        define('DOMPDF_UNICODE_ENABLED', true);
        define("DOMPDF_DEFAULT_PAPER_SIZE", "a4");


        // include DOMPDF's default configuration
        require_once 'vendor/dompdf/dompdf/dompdf_config.inc.php';
        $dompdf = new \DOMPDF();




        $view = new ViewModel();
        $view->setTemplate('application/dritter/index');
        $view->setVariable('foo', 'bar');


        $html = $this->getServiceLocator()->get('viewrenderer')->render($view);


        //$html = '<html><body><p>Put your html here, or generate it with your favourite templating system.</p></body></html>';
        $dompdf->load_html($html);


//Add a comment to this line
        $dompdf->render();
        $dompdf->stream('foo.pdf', array('Attachment' => false));
        //$output = $dompdf->output();
        //file_put_contents('Brochure.pdf', $output);
        //file_put_contents('someFileOfMine.pdf', $dompdf->render());
        return $view;
    }
Für jeden Rat dankbar.
cu ....
 

Kaiuwe

Super-Moderator
Was mach ich falsch?
Sehr viel:

  • du fragst in einem Zend Framework-Forum, obwohl deine Frage nicht direkt mit dem ZF etwas gemeinsam hat
  • du veröffentlichst dann noch im Unterforum für ZF1, aber verwendest Version 2
  • für die Code-Auszüge verwendest du die falschen BBCodes (wir müssen das lesen können!)
  • du haust deine Kontroller-Aktion schön mit Müll zu
  • übergibst viel zu viel HTML an DOMPDF
  • und am Ende überschreibst du auch noch die Textausrichtung "justify" mit "left"
;)
 

z3nd0r

New member
Sehr viel:

  • du fragst in einem Zend Framework-Forum, obwohl deine Frage nicht direkt mit dem ZF etwas gemeinsam hat
  • du veröffentlichst dann noch im Unterforum für ZF1, aber verwendest Version 2
  • für die Code-Auszüge verwendest du die falschen BBCodes (wir müssen das lesen können!)
  • du haust deine Kontroller-Aktion schön mit Müll zu
  • übergibst viel zu viel HTML an DOMPDF
  • und am Ende überschreibst du auch noch die Textausrichtung "justify" mit "left"
;)
oh wie peinlich... irgendwie war ich daneben.
Jetzt gehts.
Ich übergeben dem DOMPDF das komplette layout. Hätte es das nicht gebraucht?
 

Kaiuwe

Super-Moderator
Ich übergeben dem DOMPDF das komplette layout. Hätte es das nicht gebraucht?
Dies kannst du ganz schnell selbst beantworten:

  • Brauchst du das JavaScript in der PDF?
  • Wird eine Navigation im PDF benötigt?
  • Bringt dich Twitter Bootstrap im PDF weiter?
  • usw.
Dies alles belastet nur DOMPDF unnötig. Deaktiviere das Layout und erstelle ein View-Skript mit HTML nur für DOMPDF.
Übrigens ist dies hier ein viel besserer Ansatz: https://github.com/raykolbe/DOMPDFModule
 
Oben