228 lines
6.3 KiB
C#
228 lines
6.3 KiB
C#
/*********************************************************************************************
|
|
* Copyright 2005 - Volian Enterprises, Inc. All rights reserved.
|
|
* Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
|
|
* ------------------------------------------------------------------------------
|
|
* $Workfile: Form1.cs $ $Revision: 1 $
|
|
* $Author: Kathy $ $Date: 12/06/05 12:06p $
|
|
*
|
|
* $History: Form1.cs $
|
|
*
|
|
* ***************** Version 1 *****************
|
|
* User: Kathy Date: 12/06/05 Time: 12:06p
|
|
* Created in $/LibSource/VG/Test
|
|
*
|
|
* ***************** Version 1 *****************
|
|
* User: Kathy Date: 12/06/05 Time: 12:01p
|
|
* Created in $/LibSource/VG.root/VG/Test
|
|
*********************************************************************************************/
|
|
using System;
|
|
using System.Drawing;
|
|
using System.Collections;
|
|
using System.ComponentModel;
|
|
using System.Windows.Forms;
|
|
using System.Data;
|
|
using System.Xml;
|
|
using System.IO;
|
|
using VG;
|
|
using C1.C1Pdf;
|
|
|
|
namespace TestVG
|
|
{
|
|
/// <summary>
|
|
/// Summary description for Form1.
|
|
/// </summary>
|
|
public class Form1 : System.Windows.Forms.Form
|
|
{
|
|
private System.Windows.Forms.Button button1;
|
|
/// <summary>
|
|
/// Required designer variable.
|
|
/// </summary>
|
|
private System.ComponentModel.Container components = null;
|
|
private System.Windows.Forms.ListBox listBox1;
|
|
private System.Windows.Forms.Button button2;
|
|
private int ConvertToTwips = 1440;
|
|
public Form1()
|
|
{
|
|
//
|
|
// Required for Windows Form Designer support
|
|
//
|
|
InitializeComponent();
|
|
|
|
//
|
|
// TODO: Add any constructor code after InitializeComponent call
|
|
//
|
|
}
|
|
|
|
/// <summary>
|
|
/// Clean up any resources being used.
|
|
/// </summary>
|
|
protected override void Dispose( bool disposing )
|
|
{
|
|
if( disposing )
|
|
{
|
|
if (components != null)
|
|
{
|
|
components.Dispose();
|
|
}
|
|
}
|
|
base.Dispose( disposing );
|
|
}
|
|
|
|
#region Windows Form Designer generated code
|
|
/// <summary>
|
|
/// Required method for Designer support - do not modify
|
|
/// the contents of this method with the code editor.
|
|
/// </summary>
|
|
private void InitializeComponent()
|
|
{
|
|
this.button1 = new System.Windows.Forms.Button();
|
|
this.listBox1 = new System.Windows.Forms.ListBox();
|
|
this.button2 = new System.Windows.Forms.Button();
|
|
this.SuspendLayout();
|
|
//
|
|
// button1
|
|
//
|
|
this.button1.Location = new System.Drawing.Point(24, 8);
|
|
this.button1.Name = "button1";
|
|
this.button1.Size = new System.Drawing.Size(72, 32);
|
|
this.button1.TabIndex = 0;
|
|
this.button1.Text = "SVG To PDF";
|
|
this.button1.Click += new System.EventHandler(this.button1_Click);
|
|
//
|
|
// listBox1
|
|
//
|
|
this.listBox1.Location = new System.Drawing.Point(24, 72);
|
|
this.listBox1.Name = "listBox1";
|
|
this.listBox1.Size = new System.Drawing.Size(584, 381);
|
|
this.listBox1.TabIndex = 1;
|
|
//
|
|
// button2
|
|
//
|
|
this.button2.Location = new System.Drawing.Point(544, 8);
|
|
this.button2.Name = "button2";
|
|
this.button2.Size = new System.Drawing.Size(56, 32);
|
|
this.button2.TabIndex = 2;
|
|
this.button2.Text = "Exit";
|
|
this.button2.Click += new System.EventHandler(this.button2_Click);
|
|
//
|
|
// Form1
|
|
//
|
|
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
|
|
this.ClientSize = new System.Drawing.Size(752, 494);
|
|
this.Controls.Add(this.button2);
|
|
this.Controls.Add(this.listBox1);
|
|
this.Controls.Add(this.button1);
|
|
this.Name = "Form1";
|
|
this.Text = "Form1";
|
|
this.ResumeLayout(false);
|
|
|
|
}
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// The main entry point for the application.
|
|
/// </summary>
|
|
[STAThread]
|
|
static void Main()
|
|
{
|
|
Application.Run(new Form1());
|
|
}
|
|
|
|
private void button1_Click(object sender, System.EventArgs e)
|
|
{
|
|
listBox1.Items.Clear();
|
|
DirectoryInfo di = new DirectoryInfo("E:\\proms.net\\genmac.xml");
|
|
FileInfo[] fis = di.GetFiles("*.svg");
|
|
foreach (FileInfo fi in fis)
|
|
{
|
|
this.listBox1.Items.Add(fi.Name);
|
|
//TestSvgToPdf("E:\\proms.net\\genmac.xml",fi.Name);
|
|
VG.Page pg = new Page(true, 0.5f * ConvertToTwips, 0.5f * ConvertToTwips);
|
|
XmlDocument xmldoc = new XmlDocument();
|
|
XmlTextReader reader = new XmlTextReader("E:\\proms.net\\genmac.xml\\"+fi.Name);
|
|
xmldoc.Load(reader);
|
|
reader.Close();
|
|
try
|
|
{
|
|
GeneratePDFForSVGFile(xmldoc, fi.Name, pg);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show("Error processing: " + fi.Name, ex.Message);
|
|
}
|
|
}
|
|
MessageBox.Show("DONE generating PDF files from SVG");
|
|
}
|
|
|
|
private void GeneratePDFForSVGFile(XmlDocument xmldoc, string fname, VG.Page pg)
|
|
{
|
|
C1.C1Pdf.C1PdfDocument c1pdf = new C1.C1Pdf.C1PdfDocument();
|
|
string rootname = fname.Substring(0,fname.Length-4);
|
|
// create a pdf file with a page for each macro (i.e. macro element in xml tree),
|
|
// put it into the pdf file.
|
|
XmlNode topnode = xmldoc.LastChild;
|
|
for (int i=0;i<topnode.ChildNodes.Count;i++)
|
|
{
|
|
XmlNode nd = topnode.ChildNodes[i];
|
|
if (nd.Name!="desc")
|
|
{
|
|
SvgConvertToPdf(nd, c1pdf, pg);
|
|
if (i!=topnode.ChildNodes.Count-1)c1pdf.NewPage();
|
|
}
|
|
}
|
|
string outname = "E:\\proms.net\\genmac.xml\\testpdf\\" + rootname + ".pdf";
|
|
c1pdf.Save(outname);
|
|
}
|
|
|
|
private void SvgConvertToPdf(XmlNode nd, C1.C1Pdf.C1PdfDocument c1pdf, VG.Page ipg)
|
|
{
|
|
for (int i=0; i<nd.ChildNodes.Count; i++)
|
|
{
|
|
Page pg = new Page(true, ipg.LeftMargin, ipg.VertOffset);
|
|
XmlElement cmdele = (XmlElement) nd.ChildNodes[i];
|
|
string cmd = cmdele.Name.ToLower();
|
|
if (cmdele.GetAttribute("id")=="C0")
|
|
{
|
|
pg.LeftMargin = 100.0f;
|
|
pg.VertOffset = 100f;
|
|
}
|
|
switch (cmd)
|
|
{
|
|
case "rect":
|
|
VG_Rect vgrec = new VG_Rect(cmdele, pg);
|
|
vgrec.ToPdf(c1pdf);
|
|
vgrec=null;
|
|
break;
|
|
case "line":
|
|
VG_Line vgline = new VG_Line(cmdele, pg);
|
|
vgline.ToPdf(c1pdf);
|
|
break;
|
|
case "text":
|
|
VG_Text vgtxt = new VG_Text(cmdele, pg);
|
|
vgtxt.ToPdf(c1pdf);
|
|
break;
|
|
case "gdiadj":
|
|
break;
|
|
case "ellipse":
|
|
VG_Ellipse vgell = new VG_Ellipse(cmdele, pg);
|
|
vgell.ToPdf(c1pdf);
|
|
break;
|
|
case "image":
|
|
VG_Image vgi = new VG_Image(cmdele, pg);
|
|
vgi.ToPdf(c1pdf);
|
|
break;
|
|
case "absolute":
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void button2_Click(object sender, System.EventArgs e)
|
|
{
|
|
Application.Exit();
|
|
}
|
|
}
|
|
}
|