2010-01-28 11 views
5

Ich erstelle ein Zeitungs-Authoring-System. Heute verwende ich die Aspose.Words-Bibliothek, um eine Zeitung im Docx-Format als Ausgabe zu generieren, basierend auf einer Menge anderer Dokumente als Eingabe.Get Höhe von gerenderten Texten und Bildern in MS Word

Die Grundidee besteht darin, viele Artikel Dokumente in eine Liste zu laden, dann generieren Sie eine endgültige docx mit Zeitung.

Wir müssen die Gesamthöhe eines Textes (mit Bildern und Tabellen) in Spalten erhalten. Da Bibliotheken wie Aspose.Wörter mit dem Docx-Format wie DOM umgehen, gibt es keine Möglichkeit zu wissen, wie Text innerhalb von Spalten angeordnet wird. Dann kann ich die wahre Höhe nicht wissen.

Wir haben auf unsere Art gearbeitet, um diese Höhe zu erreichen. Ich verwende die MeasureString() - Funktion aus dem System.Drawing.Graphics-Namespace. Es gibt Breite und Höhe zurück, die von der Zeichenfolge verwendet werden, und ich kann schätzen, wie viele Zeilen (und Punkte oder Zoll) es in einer Spalte verwenden wird.

Aber es ist sehr arm und wir brauchen eine anständige Lösung. Wir denken, OpenXML SDK zu verwenden, um diese Höhe zu erhalten, können wir?

Aspose.Words unterstützt keine Möglichkeit, es zu kennen, und alle Render-Klassen sind für die Bibliothek privat.

Können Sie einen neuen Weg denken, diese Höhe zu erreichen?

Danke, Daniel Koch

+1

Sie haben seit der Veröffentlichung dieser Frage ein Feature zu Aspose.Words hinzugefügt - es stellt jetzt etwas von der Layout-Engine und viel mehr Rendering-Material zur Verfügung. Sie können Seitennummern erhalten und Grafiken, Objekte und Bilder rendern. Ich bin mir jedoch nicht sicher, wie ich die Höhe eines Objekts erreichen kann. – BrainSlugs83

Antwort

0

Vielen Dank für die Antwort.

Ich beendete es Ändern von Aspose.Words zu PDFLib. Jetzt kann ich Seiten, Spalten oder irgendetwas mit Postscript-Punkten steuern.

Wir behalten Aspose.Words nur zum Inhalt importieren, aber es ist nicht angegeben, Newsletter zu drucken.

1

Diese Eigenschaft wird in Open XML oder dem SDK (oder VBA/VSTO was das betrifft) nicht ausgesetzt. Wie genau die Höhe berechnet wird, ist in keiner Dokumentation enthalten. Möglicherweise ist die Art, wie Sie es tun, eine Möglichkeit, fortzufahren. Ein anderer möglicher Weg ist, Ihre TextColumns in eine Tabellenspalte/Zelle zu bringen und diese Höhe zu nehmen (aber wenn es zwei Textspalten in der Zelle ist und die erste die Zelle von oben nach unten füllt und die zweite nicht tut) 't, Sie werden immer noch das Problem haben, nicht in der Lage zu sein, die Größe des zweiten zu berechnen).

0

Ich habe fast das gleiche Problem, das Sie haben .. Aber in meinem Fall habe ich mit Fragen in einem Test Exam .. Nun, heute verwenden wir RTF, um die Fragen zu erstellen und eine RichTextBox die Höhe messen .. einfach so (http://blogs.technet.com/david_bennett/archive/2005/04/06/403402.aspx) .. Und ich möchte auf DOCX migrieren .. Aber immer noch kein Glück auf, wie man die Frage mit Tabellen und Bildern zu messen .. :-( Momentan studiere ich die Dokument-Mitglieder (http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word._document_members.aspx), um zu versuchen, mit Word Automation ..

Grüße zu tun,

Bruno

+0

Aspose.Words funktioniert auch mit RTF. – BrainSlugs83