Announcement

Collapse
No announcement yet.

wie kann man Doks (hauptsächlich Word) nach PDF konvertieren?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • wie kann man Doks (hauptsächlich Word) nach PDF konvertieren?

    Hallo,

    wir wollen so eine Art Archiv bauen und eben darin Dokumente ablegen. Abgelegt werden sollen jedoch nur Bilder und PDFs. Wenn also jetzt jemand eine Word-Datei in's Archiv einpflegen will, so muss diese vorab in's PDF-Format konvertiert werden. Nur womit mache ich das am besten?

    Ich kenne FreePDF, das leistet im Grunde ja das, worum es geht. Nur scheint mir die Installation und die ganze Konstellation recht aufwändig, mit Ghostscript installieren und dann, wenn ich es recht erinnere, noch einen Druckertreiber, und dann noch FreePDF. Und das dann alles auf wahrscheinlich mehreren Rechnern ... ich hätte gern etwas einfacheres, leichter wartbares, mehr mit der Applikation verzahntes. Irgendeine kleine Bibliothek wäre ideal.

    Ich habe jetzt schon im Internet nach irgendeinem einfachen Kommandozeilen-Tool oder einer nützlichen DLL geschaut, mit der man das bewerkstelligen könnte, aber nichts vernünftiges gefunden. Aber vielleicht gehe ich ja auch völlig falsch an die Sache ran.

    Also, könnt Ihr mir Tipps geben oder irgendwelche Komponenten empfehlen? Sie sollten, wenn möglich (natürlich ;-)) günstig sein, am liebsten Open Source. Es geht wirklich nur um die Konvertierung.

    Ich bin für jeden Tip dankbar ...

    Dave

  • #2
    Hallo,

    du kannst zB den Bullzip-PDF-Drucker verwenden.


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Hi Gü,

      ja, Danke schonmal. Hab's mir mal kurz auf der Website angesehen, macht an sich einen passablen Eindruck. Aber von dem Gedanken, einfach nur eine DLL einzubinden, kann ich mich wohl verabschieden, oder?

      Habe schon überlegt, ob ich einfach eine kleine Applikation schreibe, die ein Verzeichnis überwacht und dort abgelegte Dateien dann archiviert. Die Nutzer brauchen dann bloß die zu archivierende Datei in dieses Verzeichnis schieben. Vorteile: Wenig Aufwand bei der Implementierung, vor allem bei den einzelnen Nutzern und schnelle Änderungen beim Mechanismus der Archivierung möglich. Nachteile: Das Archivieren geschieht halt zeitversetzt, die Datei kann nicht sofort als im Archiv befindlich angezeigt werden.

      Ich weiß auch nicht ...

      Comment


      • #4
        Hallo,

        einfach nur eine DLL einzubinden
        Über Umwege gibts das schon. ZB NDocConvert (benötigt aber auch Open Office für die Konvertierung).

        Das Archivieren geschieht halt zeitversetzt, die Datei kann nicht sofort als im Archiv befindlich angezeigt werden.
        Wenn das mit dem FileSystemWatcher überwacht wird kann die Konvertierung wie von dir vorgeschlagen ziemlich zeitnah stattfinden. Da sehe ich kein Problem.

        Mehr weiß ich auch nicht denn ich erzeuge keine Word-Docs sondern direkt PDF


        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          Ich würde über einen installierte Word-Instanz gehen. Jede Lösung die nicht den Orginal Code von MS verwendet macht des Öfteren "Zeichensalat" aus Word-Dokumenten. Siehe auch Tests einer der letzten c't bei der teilweise aus 1-Seitigen Word-Dokumenten zweiseitige "Kunstwerke" wurden.

          Comment


          • #6
            Hallo Bernhard,

            meinst du damit dass MS Word -> Open Office dieses Problem haben könnte?

            Beim Weg MS Word -> PDF-Drucker sollte es kein Problem oder? (Ich kenn den Artikel nicht).


            mfG Gü
            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

            Comment


            • #7
              Wenn das mit dem FileSystemWatcher überwacht wird
              Ich hatte vor ca. 2 Jahren damit mal herumexperimentiert, aber irgendwie das ganze dann relativ schnell wieder abgeschaltet. Irgendwie hat das gar nicht richtig funktioniert. Ich weiß nicht mehr genau, was da war, ob irgendwelche Speicherprobleme oder was anderes, ich weiß nur, dass ich seitdem lieber Timer einsetze. Aber vielleicht sollte ich es nochmal probieren ... Bei Euch funktioniert das zuverlässig über längere Zeit?

              ... über einen installierte Word-Instanz gehen ...
              Bernhard, was meinst Du damit? Word ist installiert, aber ich wollte den Aufwand vermeiden, Word mittels meiners Programms zu steuern. Erstens käme mir das so vor, als würde ich eine zweite Front eröffnen (mit neuem Einarbeitunsgaufwand, mit wieder neuen möglichen Fehlerquellen usw.), zweitens hätte ich es gern möglichst flexibel, sodass quasi nicht NUR Word-Dateien abgelegt werden können. Oder meinst Du etwas anderes?

              Comment


              • #8
                Originally posted by gfoidl View Post
                meinst du damit dass MS Word -> Open Office dieses Problem haben könnte?
                Definitiv. Keine externe Implementierung der Welt wird jemals das Word-Format fehlerfrei implementieren können. Es reicht ja schon das ab und zu mal Word selbst mit seinen Dateien probleme hat.

                Originally posted by gfoidl View Post
                Beim Weg MS Word -> PDF-Drucker sollte es kein Problem oder?
                Ja. Früher haben wir in der Firma den Acrobat Distiller verwendet um PDF's zu erzeugen. Mit der 2007er Word Version machen wir es mit Word-Mitteln. Geht schneller und es gibt auch keine Abstürze mehr.

                Comment


                • #9
                  Hallo Bernhard,

                  hast du auch Erfahrung mit WordML -> PDF? (nur als Interesse)


                  mfG Gü
                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                  Comment


                  • #10
                    WordML? Meinst du das "offene" OpenXML-Format von MS. Das wurde auch mal behandelt in der c't. Gibt (wie auch beim OpenOffice-Format) probleme wenn der Leser nicht gleich der Ersteller. Hierzu gibt es (Vor allem beim OpenXML gegenüber den OpenOffice-Format) viel zu viele Punkte die unterschiedliche interpretiert werden können. Und bei OpenXML mit > 1000 Seiten Spezifikation kann da einiges Schief gehen).

                    Also am besten WordML welche mit Word erzeugt wurde auch mit Word nach PDF wandeln lassen.

                    Comment


                    • #11
                      Danke für die Infos.

                      Ja, ich hab OpenXML von MS gemeint. Aber ich erzeuge meine Dokumente eh mit LaTeX, daher hat es mich interessiert was so möglich ist.


                      mfG Gü
                      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                      Comment


                      • #12
                        Hallo,

                        ich bräuchte doch nochmal Hilfe,
                        Originally posted by gfoidl View Post
                        du kannst zB den Bullzip-PDF-Drucker verwenden.
                        das habe ich gemacht, als Basis nahm ich hierfür dieses Beispiel. Allerdings bringt er mir immer die Fehlermeldung, dass "dieser Datei keine Anwendung zugeordnet" ist.

                        Auf meinem Rechner läuft das soweit, der Fehler tritt nur auf dem Produktivrechner auf (Windows Server 2003). Dort habe ich, um XLS und DOC konvertieren zu können, die jeweiligen Viewer installiert, mit denen ja Drucken möglich ist. Die Erweiterungen sind mMn korrekt den Anwendungen zugeordnet, die Icons der XLS- bzw. DOC-Dateien werden korrekt dargestellt, und ein Doppelklick öffnet die Dateien im jeweiligen Viewer anstandslos. Auch ein nochmaliges manuelles Zuweisen der Erweiterungen den Anwendungen hat nicht geholfen. In diesem Code-Beispiel kann ich dem Process auch nicht die korrekte Anwendung (ProcessStartInfo.FileName) UND die zu behandelnde Datei als Argument (ProcessStartInfo.Argument) mitgeben, da er in Filename nur die Datei erwartet und Argument später anderweitig, nämlich mit dem Druckernamen belegt wird.

                        Irgendwie komme ich nicht weiter, ich wäre dankbar für 'nen Tip oder ein anderes Anwendungsbeispiel für den Bullzip-Drucker. Danke...

                        Chris

                        Comment


                        • #13
                          Hallo,

                          als Argument kannst du bei Process.StartInfo nicht nur einen Wert, sondern (wie man es auch bei der Kommandozeile bzw. zu DOS-Zeiten gemacht hat) mehrere hintereinander als String übergeben.

                          Die Fehlermeldung, dass "dieser Datei keine Anwendung zugeordnet" ist, bezieht sich auf die Windows-Einstellungen. Das geschieht in der Registry. Wie es genau aus C# heraus möglich ist, musst du über die Suche klären; das habe ich mir nicht gemerkt.

                          Gruß Jürgen

                          Comment


                          • #14
                            Danke für den Tip, aber er funktioniert auch nicht. Das Resultat ist dasselbe: "Der angegebenen Datei ist keine Anwendung zugeordnet". Egal, ob ich beide Parameter in Anführungszeichen setze oder nicht.

                            Dass sich die Meldung auf die Windows-Einstellungen bezieht, habe ich vermutet, nur sind die doch offenbar in Ordnung (siehe meinen letzten Post). Aber wenn ich ProcessInfo so fülle:[highlight=vbnet]Dim psi As New ProcessStartInfo()
                            If file.EndsWith(".doc") Then
                            psi.FileName = "C:\Programme\Microsoft Office\Office11\WordView.exe"
                            ElseIf file.EndsWith(".xls") Then
                            psi.FileName = "C:\Programme\Microsoft Office\Office12\XLView.exe"
                            End If
                            psi.Verb = "Printto"
                            psi.Arguments = """" + file + """ " + printerName
                            Dim p As Process = Process.Start(psi)
                            [/highlight], sollte ja auch eine Standard-Anwendung egal sein, da ich ja die korrekte Anwendung in FileName mitgebe. Dennoch tritt dieser Fehler auf. Ich kapier's nicht. Was kann ich tun?

                            Dave

                            Comment

                            Working...
                            X