Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void getTitle(string path, Document document, DateTime startTime)
- {
- int index = 0;
- foreach (Spire.Doc.Section section in document.Sections)
- {
- foreach (Spire.Doc.Documents.Paragraph paragraph in section.Paragraphs)
- {
- if (paragraph.Text.StartsWith("Figure"))
- {
- string[] split = paragraph.Text.Split(' ');
- string title = split[0] + " " + split[1];
- titles.Add(title);
- index++;
- timeRemaining = TimeSpan.FromTicks(DateTime.Now.Subtract(startTime).Ticks * (section.Paragraphs.Count - (index + 1)) / (index + 1));
- estimatedTime = String.Format("{0}h:{1:D2}m:{2:D2}s", (int)timeRemaining.TotalHours, timeRemaining.Minutes, timeRemaining.Seconds);
- lblRemainingTime.Text = estimatedTime;
- lblRemainingTime.Update();
- percentComplete = (int)Math.Round((double)(100 * section.Paragraphs.Count - index) / section.Paragraphs.Count);
- prgTimeRemaining.Value = percentComplete;
- lblProgress.Text = percentComplete.ToString() + " %";
- }
- }
- }
- }
- private void extractImagesFromDocument(string path, Document document, DateTime startTime)
- {
- int index = 0;
- Queue containers = new Queue();
- containers.Enqueue(document);
- while (containers.Count > 0)
- {
- ICompositeObject container = (ICompositeObject)containers.Dequeue();
- DocumentObjectCollection docObjects = container.ChildObjects;
- foreach (DocumentObject docObject in docObjects)
- {
- if (docObject.DocumentObjectType == DocumentObjectType.Picture)
- {
- timeRemaining = TimeSpan.FromTicks(DateTime.Now.Subtract(startTime).Ticks * (titles.Count - (index + 1)) / (index + 1));
- estimatedTime = String.Format("{0}h:{1:D2}m:{2:D2}s", (int)timeRemaining.TotalHours, timeRemaining.Minutes, timeRemaining.Seconds);
- lblRemainingTime.Text = estimatedTime;
- lblRemainingTime.Update();
- percentComplete = (int)Math.Round((double)(100 * titles.Count - index) / titles.Count);
- prgTimeRemaining.Value = percentComplete;
- lblProgress.Text = percentComplete.ToString() + " %";
- DocPicture picture = docObject as DocPicture;
- string imageTitle= titles[index];
- picture.Image.Save(imageTitle + ".png", ImageFormat.Png);
- index++;
- }
- else
- {
- if (docObject is ICompositeObject)
- {
- containers.Enqueue(docObject as ICompositeObject);
- }
- }
- }
- }
- MessageBox.Show("Titles list:" + titles.Count);
- MessageBox.Show("Images count:" + index);
- }
- private void btnSelectDocument1_Click(object sender, EventArgs e)
- {
- startTime = DateTime.Now;
- OpenFileDialog openFileDialog = new OpenFileDialog();
- DialogResult result = openFileDialog.ShowDialog();
- if (result == DialogResult.OK)
- {
- path = txtDocument1.Text = openFileDialog.FileName;
- extension = Path.GetExtension(path);
- newPath = Path.Combine(Path.GetDirectoryName(path), Path.GetFileNameWithoutExtension(path));
- fileName = newPath + " - Copy" + extension;
- File.Copy(path, fileName);
- Document document = new Document();
- document.LoadFromFile(path);
- getTitle(fileName, document, startTime);
- extractImagesFromDocument(fileName, document, startTime);
- MessageBox.Show("Done");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement