AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Word Automatisation Beschleunigen

Ein Thema von GoTo0815 · begonnen am 12. Mär 2020 · letzter Beitrag vom 19. Mär 2020
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#11

AW: Word Automatisation Beschleunigen

  Alt 12. Mär 2020, 17:32
Eine Dot-Datei ist eine Vorlage, eine DOC das (mehr oder weniger) finale Dokument. Da einige Funktionalitäten eigentlich nur bei Vorlagen verfügbar sind, bin ich davon ausgegangen, daß DOC ein Schreibfehler war??
Die wichtigste Beschleunigung wurde schon genannt Visible=False.
Dann bringt die Arbeit mit Range statt Selection auch etwas.
Und vllt. können wir Dir weiter helfen wenn Du den Source postest.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#12

AW: Word Automatisation Beschleunigen

  Alt 12. Mär 2020, 18:13
Hmm..

Also um das leeren = Laden wird Du wohl nicht herum kommen.
Word unterstützt kein speichern/laden per Stream, somit kannst Du dir das originale Word-Dokument nicht vor dem Bearbeiten in nen Stream speichen und dann vor jeder Rechnung einfach wieder ins Word zurück schreiben.

Es scheint hier nur eine Möglichkeit über die Zwischenablage zu geben, was mir aber zu gefährlich wäre, wenn der User noch andere Copy/Paste Aktionen während deiner Erzeugung durchführen kann.

Eine Beschleunigung könnte somit (neben Visible:=False / ScreenUpdating := False) noch die Verwendung einer schnellen SSD zum Laden der Vorlage oder eine temporäre RAM-Disk, wenn es keine Hardware Option gibt..

Alternativ kannst Du die Vorlage natürlich auch jedes Mal selber neu per Programm erstellen, ob das jedoch schneller geht...

Somit würde ansonsten nur die Verwendung einer Report-Komponente eine Alternative darstellen, dann müsste in dessem Designer nur das Word-Dokument nachgebildet werden.
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
EarlyBird

Registriert seit: 29. Mär 2007
235 Beiträge
 
#13

AW: Word Automatisation Beschleunigen

  Alt 12. Mär 2020, 19:59
ich werfe mal die verschiedenen dot.net Word API´s ins rennen.
Wir nutzen zur Zeit DevExpress Office File API.
Die Geschwindigkeit gegenüber der Word Automation ist "atemberaubend"
Das Handling ist meiner Meinung nach auch wesentlich einfacher.
Damit kann man eine Vorlage Laden und daraus beliebig viele neue Dokumente erzeugen.
Bei der Anzahl an Dokumenten die Ihr erstellen müsst ist das ja vielleicht eine Überlegung wert.
Und Pdf's kann man auch direkt damit erzeugen
  Mit Zitat antworten Zitat
GoTo0815

Registriert seit: 18. Mai 2004
148 Beiträge
 
Delphi XE2 Professional
 
#14

AW: Word Automatisation Beschleunigen

  Alt 13. Mär 2020, 09:03
Bereits alles umgesetzt:
SSD: Check
Ram Disk: Check
Visible:= False : Check
ScreenUpdating := False : Check

Vorlage selbst erstellen könnte klappen, ist für nen Test natürlich mächtig aufwändig
Zwischenablage sehe ich ähnlich, obwohl, wenn der Rechner nur für diese Aufgabe verwendet wird, dann könnte das ggf. trotzdem ein Weg sein.

.Net traue ich mich momentan nicht ran. Denke zwar, dass könnte die Lösung sein, aber ich habe mich da ehrlich gesagt noch nie mit beschäftig.
Falls ich mal ein "DANKE" vergesse, hier schon mal eins im Voraus: Danke für Eure Zeit!
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#15

AW: Word Automatisation Beschleunigen

  Alt 13. Mär 2020, 09:14
Moin...

Könntest du dir einen Umbau auf FastReport oder ähnliches vorstellen? Da hast du die Oberfläche (Word) außen vor. Du müßtest die Daten andersweitig "vorbereiten" ... Bilder in Datenbank/Ordner etc.
  Mit Zitat antworten Zitat
GoTo0815

Registriert seit: 18. Mai 2004
148 Beiträge
 
Delphi XE2 Professional
 
#16

AW: Word Automatisation Beschleunigen

  Alt 13. Mär 2020, 09:35
Moin auch !!!

Ich habe schon sehr viel über andere Wege nachgedacht. Ein Grund um an Word festzuhalten ist, dass die Änderung der Vorlagen (beispielsweise das Layout) von jemandem ohne weitere Kenntnis in Word durchgeführt werden kann.
Ich empfinde die Ratschläge zu anderen Wegen auch wichtig und ggf. hilfreich, aber mit diesem Thread hier, verfolge ich den Ansatz die bestehende Word Automatisation zu beschleunigen.
Erst wenn hier alle Möglichkeiten erschöpft sind, würde ich ein Abbiegen auf einen anderen Weg in Betracht ziehen.

Ich habe halt immer noch die Hoffnung, dass hier irgendwer schreibt: "Da musst Du einfach VariableVomTypOleVariant := WordApp.Documents.ActiveDocument und dann ein WordApp.Documents.Add und dem dann die Varible zuweisen."
Falls ich mal ein "DANKE" vergesse, hier schon mal eins im Voraus: Danke für Eure Zeit!
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.995 Beiträge
 
Delphi 12 Athens
 
#17

AW: Word Automatisation Beschleunigen

  Alt 13. Mär 2020, 09:45
Als ich die Beschreibung deiner Vorgehensweise las, dachte ich gleich an die Mail-Merge Funktionalität in Word, bei der eine Vorlage mit Platzhaltern durch Einträge einer Datenquelle gefüllt und pro Datensatz ein separates Dokument gedruckt wird (gedruckt kann auch das Speichern als PDF bedeuten). Ich bin mir aber nicht sicher, ob das alle deine Anforderungen erfüllt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
GoTo0815

Registriert seit: 18. Mai 2004
148 Beiträge
 
Delphi XE2 Professional
 
#18

AW: Word Automatisation Beschleunigen

  Alt 13. Mär 2020, 10:09
Ja, die Serienbrieffunktion hatte ich auch bereits im Blick. Problematisch wird es halt mit dem Einfügen von unterschiedlich großen Preistabellen.
Sagen wir ein Artikel wäre Kies. Den es in 10 verschiedenen Körnungen gäbe und in Gebinden von 25kg bis hin zu mehreren Tonnen.
Der nächste Artikel wäre ein T-Shirt in 4 Größen und 3 Mengenstaffeln.
Will sagen die Tabellen haben unterschiedliche Mengen an Spalten und Reihen.
Vielleicht übersehe ich da auch etwas, aber ich konnte mir bisher keinen Weg vorstellen, das in einem Serienbrief abzubilden.
Schon auf der Seite der Quelldaten..
Falls ich mal ein "DANKE" vergesse, hier schon mal eins im Voraus: Danke für Eure Zeit!
  Mit Zitat antworten Zitat
GoTo0815

Registriert seit: 18. Mai 2004
148 Beiträge
 
Delphi XE2 Professional
 
#19

AW: Word Automatisation Beschleunigen

  Alt 13. Mär 2020, 11:23
Habe mich jetzt mal ein wenig bei den VBAlern umgeschaut.
Und habe zumindest einen Lösungsansatz gefunden, dass Dokument einfach weiter zu verwenden.
Man merkt sich die Range der Textmarke füllt diese mit Inhalt. Dadurch werden laut Forumseintrag offene Textmarken zu geschlossenen.
Nach dem Speichern des befüllten Dokuments als PDF ersetze ich die gemerkten Ranges alle wieder durch gleichnamige Textmarken.
Ob das die gewünschte Performance bringt und das alles so klappt, werde ich testen, aber es ist zumindest ein Ansatz, mit dem ich auf Basis von "einer einzigen" geöffneten Vorlage arbeiten könnte.

Hier gefunden: http://www.office-loesung.de/ftopic42883_0_0_asc.php

Code:
Sub TBrange()
    Dim bRange As Range
    '
    If ActiveDocument.Bookmarks.Exists("F1") Then
        Set bRange = ActiveDocument.Bookmarks("F1").Range
        bRange.Text = "der Text"
    End If
    '
    ' Textmarke recykeln
    With ActiveDocument.Bookmarks
        .Add Range:=bRange, Name:="F1"
    End With
End Sub
Falls ich mal ein "DANKE" vergesse, hier schon mal eins im Voraus: Danke für Eure Zeit!
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.174 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Word Automatisation Beschleunigen

  Alt 13. Mär 2020, 13:36
Wenn die Vorlagen auch als RTF Dateien vorliegen können, dann ist das ev. eine Option:

https://www.128byte.ru/
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz