private byte[] GetImageSource(ProofItem proof) { switch (proof.Type) { case FileTypeEnum.Directory: case FileTypeEnum.Word: case FileTypeEnum.Excel: return(File.ReadAllBytes(AppDomain.CurrentDomain.BaseDirectory + "Images\\file.png")); case FileTypeEnum.Pdf: return(File.ReadAllBytes(AppDomain.CurrentDomain.BaseDirectory + "Images\\pdf.png")); case FileTypeEnum.Img: FileStream datFs = null; try { datFs = new FileStream(proofDatFileName, FileMode.Open, FileAccess.Read); byte[] buffer = new byte[proof.Length]; datFs.Position = proof.StartIndex; datFs.Read(buffer, 0, buffer.Length); return(buffer); } finally { if (datFs != null) { datFs.Dispose(); } } default: throw new Exception("获取证据失败。"); } }
public ProofControl(ProofItem proof, int selectIndex) { InitializeComponent(); this.selectIndex = selectIndex; this.proof = proof; LoadControl(proof.Proofs[selectIndex]); }
private void LoadControl(ProofItem file) { switch (file.Type) { case FileTypeEnum.Pdf: PDFView pdf = new PDFView(file); container.Content = pdf; break; case FileTypeEnum.Img: ImageView image = new ImageView(file.ImgSource); container.Content = image; break; } }
private IList <ProofItem> ConvertToProofItems(ProofFileFolder root, ProofItem parent = null) { IList <ProofItem> proofs = new List <ProofItem>(); for (int i = 0; i < root.Folders.Count; i++) { ProofItem proof = new ProofItem(); proof.Type = FileTypeEnum.Directory; proof.Name = root.Folders[i].Name; proof.ImgSource = GetImageSource(proof); proof.Proofs = new ObservableCollection <ProofItem>(); proof.Parent = parent; IList <ProofItem> children = ConvertToProofItems(root.Folders[i], proof); for (int j = 0; j < children.Count; j++) { proof.Proofs.Add(children[j]); } proofs.Add(proof); } for (int i = 0; i < root.Files.Count; i++) { ProofItem proof = new ProofItem(); proof.Type = root.Files[i].FileType; proof.Name = root.Files[i].Name; proof.StartIndex = root.Files[i].StartIndex; proof.Length = root.Files[i].Length; proof.ImgSource = GetImageSource(proof); proofs.Add(proof); } return(proofs); }
public string GetProofTempFilePath(ProofItem proof) { FileStream datFs = null; FileStream tempFs = null; byte[] buffer; try { string tempFileName = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".pdf"); datFs = new FileStream(proofDatFileName, FileMode.Open, FileAccess.Read); tempFs = new FileStream(tempFileName, FileMode.Create, FileAccess.Write); datFs.Position = proof.StartIndex; while (tempFs.Position < proof.Length) { buffer = new byte[proof.Length - tempFs.Position > BUFFER_LENGTH ? BUFFER_LENGTH : proof.Length - tempFs.Position]; datFs.Read(buffer, 0, buffer.Length); tempFs.Write(buffer, 0, buffer.Length); } return(tempFileName); } finally { if (datFs != null) { datFs.Dispose(); } if (tempFs != null) { tempFs.Dispose(); } } }
public void AdobeReaderControl(ProofItem choiseItem) { tempFilePath = SingletonManager.Get <ProofShowProcessor>().GetProofTempFilePath(choiseItem); this.axAcroPDF1.LoadFile(tempFilePath); }
public string GetProofTempFilePath(ProofItem proof) { return(proofManager.GetProofTempFilePath(proof)); }
public PDFView(ProofItem proof) { InitializeComponent(); this.pdfReader.AdobeReaderControl(proof); }