Drucken von Web-Anwendungen

8

Wie generieren Sie Papierabzüge von einer Webanwendung?

Insbesondere denke ich über komplexere Papierdokumente wie Diplome, Rechnungen und Verträge nach. Variable Anzahl von Seiten mit Rahmen, Tabellen, Logos und Kopf- / Fußzeilen.

Heute verwende ich benutzerdefinierte Formulare und CSS für bestimmte Dinge und iTextSharp für andere (ich arbeite mit asp.net und MS-SQL), aber ich denke, beide Ansätze sind zeitaufwendig und schwer konsistent über verschiedene Dokumente zu machen.

Gibt es einen besseren Weg?

    
Console 12.01.2009, 09:40
quelle

4 Antworten

3

Das Erstellen von Dokumenten mit iTextSharp kann sehr zeitaufwendig sein. Alternativ können Sie PDF- "Vorlagen" -Dokumente erstellen (oder wiederverwenden), indem Sie ihnen Formularfelder hinzufügen (falls erforderlich). Am einfachsten ist dies mit einer Vollversion von Adobe Acrobat, aber Sie können auch ausfüllbare Formularfelder nur mit iTextSharp hinzufügen.

Sie können beispielsweise für eine Auszeichnung oder ein Diplom eine PDF-Datei suchen, erstellen oder ändern, die den gesamten Text, alle Grafiken, ausgefallenen Rahmen und Schriftarten für das Dokument enthält, und dann ein Formularfeld für den Namen des Empfängers hinzufügen. Sie könnten andere Felder für Daten, Unterschriftszeilen, Art der Auszeichnung usw. hinzufügen.

Dann ist es sehr einfach, iTextSharp aus Ihrer Webanwendung zu verwenden, um das Formular auszufüllen, es zu verflachen und es zurück zum Benutzer zu streamen.

Am Ende dieses Beitrags finden Sie ein vollständiges Beispiel für einen ASHX-Handler-Code.

Denken Sie auch daran, dass iTextSharp (oder nur iText) auch nützlich ist, um PDF-Dokumente oder Seiten aus verschiedenen Dokumenten zu kombinieren. Für einen Jahresbericht, der ein festes Design für eine Deckungs- oder Erläuterungsseite hat, aber dynamisch generierten Inhalt, können Sie das Deckblatt öffnen, eine Vorlagenseite für den Bericht öffnen, den dynamischen Inhalt auf einem leeren Bereich der Vorlage generieren und öffnen die Rückseite "Boilerplate", dann kombinieren Sie sie alle in einem einzigen Dokument, um an den Benutzer zurückzukehren.

%Vor%     
CMPalmer 22.01.2009, 01:05
quelle
3

IMHO für das Drucken im festen Format PDF wenn die Antwort

    
aivarsak 12.01.2009 09:44
quelle
2

Obwohl Sie angegeben haben, dass Sie einen CSS-basierten Ansatz ausprobiert haben, ist der beste Weg, sich den @ print-Medientyp anzusehen ( Ссылка ). Grundsätzlich können Sie ein anderes Stylesheet zum Drucken als für den Bildschirm oder einen der anderen (vielen) Medientypen verwenden.

Wenn Sie ein Druckereignis automatisch starten möchten, möchten Sie Folgendes verwenden (JavaScript):

%Vor%

Natürlich müssen Sie prüfen, ob der Browser tatsächlich das Drucken über JavaScript unterstützt, und entsprechend handeln:

%Vor%

Wenn Sie jedoch fest davon überzeugt sind, dass CSS Ihre Anforderungen nicht erfüllen wird, müssen Sie wahrscheinlich auf eine PDF-basierte Lösung zurückgreifen. Ich habe jedoch keine Erfahrung darin, Webausdrucke über "PDF" zu erstellen.

    
James Burgess 12.01.2009 09:50
quelle
1

Wenn Sie SQL Server verwenden, können Sie einen Bericht mithilfe von Reporting Services erstellen. Der Benutzer kann dann entweder direkt drucken oder selbst in verschiedene Formate exportieren (Sie können steuern, welche Formate dem Benutzer zur Verfügung stehen).

Ich habe diesen Ansatz in der Vergangenheit benutzt und festgestellt, dass er mir viel mehr Kontrolle über das Aussehen des Dokuments gibt, wenn es gedruckt oder exportiert wird.

    
KevB 12.01.2009 10:41
quelle