Ankündigung

Einklappen
Keine Ankündigung bisher.

Berechnung von Seitenzahlen in einem PDF

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Berechnung von Seitenzahlen in einem PDF

    Für eine Hauszeitung möchte ich genau nicht mit Indesign, Quark Express und Co das Setzen von Text und Bildern vornehmen. Stattdessen schwebt mir eine ganz einfache Maschinerie vor.

    Ich gebe einen Titel und einen Text ein, speichere das via MySQL und übergebe das ganze mit einer PDF-Bibliothek zur Erstellung einer PDF-Datei.
    Die Überschriften kann ich sortieren, packe noch ein Feld für Verweise und Quellen dazu. Evtl. gibt es noch Rubriken zur Wahl, damit die Rubriken in einer Reihenfolge sind und die Texte innerhalb der Rubriken sortiert werden können.

    Soweit kriege ich das alles wohl hin.

    Meine Herausforderung ist nun folgende:

    Ich möchte, dass Überschriften und Texte in der von mir gewählten Reihenfolge (mit diversen Abständen, Schriftgrößen usw.) hintereinander weg in das PDF geschrieben werden. Für die Übersicht der Artikel benötige ich nun aber auch Seitenzahlen.
    Und ich habe leider absolut keine Ahnung wie ich das berechnen soll. ich müsste quasi eine Schrift nutzen bei der alle Buchstaben und Satzzeichen den gleichen Platz benötigen um dann mit diversen Schleifen herauszufinden wieviele Wörter jeweils in eine Zeile passen, wieviele Zeilen ich brauche bis zur nächsten Überschrift, ob diese dann noch auf die Seite passt usw. um zu jeder Überschrift sprich zu jedem neuen Text eine Seitenzahl zu haben.

    Hat jemand eine Idee wie man so etwas anstellen kann, kann das evtl. eine PDF-Bibliothek?

    Und müsste es ein solch einfaches Programm nicht schon geben, weil viele Leute es für einfache Hauszeitungen gut gebrauchen könnten?




  • #2
    Mir fällt gerade ein, dass ich die erste Seite mit der Artikelübersicht per Hand gestalten könnte, nachdem ich den Rest ausgedruckt habe. Bei einer überschaubaren Anzahl von Artikel wäre das nicht elegant, aber einfach lösbar.
    Nun ja, vlt. kennt jemand ein solches Programm oder hat eine Idee wie man eine Lösung programmieren könnte. ich bedanke mich vorab für eine freundliche Hilfestellung.
    LG Anja

    Kommentar


    • #3
      Hallo und herzlich willkommen im Forum,

      Wie sehen Deine Überlegungen in Quellcode aus?
      Hast Du bereits angefangen an einer Lösung zu basteln oder geht es Dir nur darum, ob jemand so ein Programm kennt bzw. es für Dich programmiert?
      Competence-Center -> Enjoy the Informatrix
      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

      Kommentar


      • #4
        Ansonsten ist auch Google immer ganz praktisch für "solche" Dinge. https://www.google.at/search?q=php+p...iten+ermitteln

        Führt zB zu: http://fpdf.de/funktionsreferenz/PageNo/
        The string "()()" is not palindrom but the String "())(" is.

        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          Ich denke wenn du eine anständige Lib zur Generierung des PDFs nimmst, ist es überhaupt kein Problem herauszufinden wieviele Seiten das PDF hat.
          z.B. https://github.com/zendframework/ZendPdf (Dokumentation zu finden ist nicht ganz einfach leider)

          Kommentar


          • #6
            wenn gut aussehen soll, und solche dinge wie seitenzahlen, fussnoten quellennachweise etc automatisiert sein sollen, mach es mit tex.
            mE ist das mal wieder falsch hier

            Kommentar


            • #7
              Eine einfache Vorgehensweise bei derlei Problemen ist häufig, das Dokument einfach zweimal zu generieren und beim ersten Durchgang mit Platzhaltern [Edit: für die Seitenzahlen] zu arbeiten und die passenden Informationen zu ermitteln (aktuelle Seitenzahl lässt sich während der Generierung abfragen), um dann beim zweiten Durchgang diese Informationen an den passenden Stellen einsetzen zu können.

              Kommentar


              • #8
                Ich hätte jetzt auch TeX ins Spiel gebracht. Ansonsten... Wenn man eine PDF zu Fuß generiert, dann weiss man doch auch, wann die Seite voll ist und man die Nächste beginnen muss.

                Kommentar


                • #9
                  (La)TeX ist sicher immer interessant für so was, setzt aber natürlich auch voraus, dass man Infrastruktur zur Verfügung hat, auf der man es installieren und nutzen kann. Das ist leider nichts für den 08/15-Webspace.

                  Das grundsätzliche Problem ist, dass man mit der Generierung zum Beispiel gerade auf Seite 1 ist und unten im Footer die Info „Seite 1 von x“ haben will, aber noch nicht weiß, wie viele Seiten es letztlich werden. Das, was ich dazu umrissen habe, funktioniert auch nur in eher trivialen Fällen. Es ist ja auch denkbar, dass eine Seitenzahl in den Fließtext eingefügt werden soll („siehe Seite 5“), die beim nachträglichen Hinzufügen so viel Platz einnimmt, dass sich der Inhalt danach um eine Zeile verschiebt und dass dann schlimmstenfalls die Seitenzahl nicht mehr passt, weil der Inhalt, auf den die Seitenangabe verweist, auf die nächste Seite gewandert ist.

                  Ich habe keine Ahnung, wie LaTeX oder LibreOffice das machen, aber so ganz trivial scheint mir das nicht zu sein.

                  Kommentar


                  • #10
                    Wenn man davon ausgeht, dass viele Dokumente im Blocksatz erstellt werden und somit meistens so und so etwas Buffer in der Zeile haben und man für Seitenzahlen zB 4 Stellen fließtextseitig im Blocksatz "reserviert" (für die nachträgliche Ersetzung, wie von dir oben angegeben), wird das vermutlich im Großen und Ganzen zumeist gut gehen.
                    The string "()()" is not palindrom but the String "())(" is.

                    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                    PHP.de Wissenssammlung | Kein Support per PN

                    Kommentar


                    • #11
                      hehe

                      Kommentar


                      • #12
                        Naja, das ist alles machbar. Ich habe vor fast 10 Jahren mal einen Generator für Rechnungen mit TCPDF geschrieben. Da gab es noch kein Zend\PDF. Wenn man es richtig macht, dann sind sogar solche Satzvarianten wie Blocksatz kein größeres Problem. Mann muss den Satz aber von Hand machen, also die Position der Wörter berechnen, Silbentrennung, etc.

                        Kompliziert wird es immer dann, wenn Informationen im Text verankert werden sollen, deren Inhalt sich erst durch den Umfang des Dokuments ergibt. mermshaus hat es schon angesprochen. Die Erwähnung von (siehe Seite 5) kann das, was man auf Seite 5 finden soll, schon auf Seite 6 gedrängt haben. Beispiele hierfür sind die Inhaltsangabe (die auf Grund der gewählten Überschriftenlänge auf einigen Seiten mehr als eine Seite braucht), Verweise auf Grafiken oder übliche Satzthemen ("Schusterjunge", "Hurenkind") bei denen man vorausschauen muss. Aber ich denke, so komplex will es der TE gar nicht haben.

                        Kommentar


                        • #13
                          Zitat von hausl Beitrag anzeigen
                          ... Blocksatz...
                          Zitat von mermshaus Beitrag anzeigen
                          hehe
                          Zitat von rkr Beitrag anzeigen
                          ...muss den Satz aber von Hand machen, also die Position der Wörter berechnen, Silbentrennung, etc. ...
                          Hm Blocksatz .. daran hatte ich eben nicht gedacht.
                          The string "()()" is not palindrom but the String "())(" is.

                          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                          PHP.de Wissenssammlung | Kein Support per PN

                          Kommentar


                          • #14
                            Zitat von mermshaus Beitrag anzeigen
                            (La)TeX ist sicher immer interessant für so was, setzt aber natürlich auch voraus, dass man Infrastruktur zur Verfügung hat, auf der man es installieren und nutzen kann. Das ist leider nichts für den 08/15-Webspace.
                            ich möchte da kurz auf die webseite:
                            https://de.sharelatex.com/user/subscription/plans

                            sowie auf github:
                            https://github.com/sharelatex/sharelatex

                            verweisen.

                            Kommentar


                            • #15
                              Evtl. tut es auch https://github.com/dompdf/dompdf womit man HTML in ein PDF umwandeln lassen kann.

                              Grüße.

                              Kommentar

                              Lädt...
                              X