public static string ImportPDF(string file, int seriesNumber){DicomDataset dataset = new DicomDataset();dataset.Add(DicomTag.SOPClassUID, DicomUID.EncapsulatedPDFStorage);dataset.Add(DicomTag.StudyInstanceUID, Common.GenerateUid());dataset.Add(DicomTag.SeriesInstanceUID, Common.GenerateUid());dataset.Add(DicomTag.SOPInstanceUID, Common.GenerateUid());dataset.Add(DicomTag.PatientID, "12345");dataset.Add(DicomTag.PatientName, string.Empty);dataset.Add(DicomTag.PatientBirthDate, "00000000");dataset.Add(DicomTag.PatientSex, "M");dataset.Add(DicomTag.StudyDate, DateTime.Now);dataset.Add(DicomTag.StudyTime, DateTime.Now);dataset.Add(DicomTag.AccessionNumber, string.Empty);dataset.Add(DicomTag.ReferringPhysicianName, string.Empty);dataset.Add(DicomTag.StudyID, "1");dataset.Add(DicomTag.SeriesNumber, seriesNumber.ToString());dataset.Add(DicomTag.ModalitiesInStudy, "OT");dataset.Add(DicomTag.Modality, "OT");byte[] fileData = ReadBytesFromFile(file);dataset.Add(DicomTag.EncapsulatedDocument, fileData);FileInfo fi = new FileInfo(file);string directory = Path.Combine(fi.DirectoryName, @"DCM\DICOM");if (!Directory.Exists(directory))Directory.CreateDirectory(directory);string path = Path.Combine(directory, Path.GetFileNameWithoutExtension(fi.Name) + "_" + DateTime.UtcNow.Ticks + ".dcm");DicomFile ff = new DicomFile(dataset);ff.Save(path);return path;}private static byte[] ReadBytesFromFile(string file){using (FileStream fs = File.OpenRead(file)){try{byte[] bytes = new byte[fs.Length];fs.Read(bytes, 0, Convert.ToInt32(fs.Length));fs.Close();return bytes;}finally{fs.Close();}}}
private void BuildData() { var pn = new DicomPersonName(DicomTag.PatientName, LastName.Text, FirstName.Text); var Sex = GetSex(); var dob = DateTime.Parse(Picker.Text); var dataset = new DicomDataset { {DicomTag.SOPClassUID, DicomUID.EncapsulatedPDFStorage}, {DicomTag.StudyInstanceUID, GenerateUid()}, {DicomTag.SeriesInstanceUID, GenerateSeriesUid()}, {DicomTag.SOPInstanceUID, GenerateUid()}, {DicomTag.PatientID, PatientId.Text}, {DicomTag.PatientName, pn.Get<String>()}, {DicomTag.PatientSex, Sex}, {DicomTag.PatientBirthDate, dob}, {DicomTag.StudyDate, DateTime.Now}, {DicomTag.StudyTime, DateTime.Now}, {DicomTag.AccessionNumber, AccessionNo.Text}, {DicomTag.StudyID, "1"}, {DicomTag.SeriesNumber, "1"}, {DicomTag.Modality, "OT"}, {DicomTag.ReferringPhysicianName, String.Empty}, {DicomTag.NumberOfStudyRelatedInstances, "1"}, {DicomTag.NumberOfStudyRelatedSeries, "1"}, {DicomTag.NumberOfSeriesRelatedInstances, "1"}, {DicomTag.DocumentTitle, "Results_ENG"}, {DicomTag.EncapsulatedDocument, ReadBytesFromFile(_filename)}, {DicomTag.MIMETypeOfEncapsulatedDocument, "application/pdf"} }; var ff = new DicomFile(dataset); if (!Directory.Exists("OutputFiles")) { Directory.CreateDirectory("OutputFiles"); } ff.Save(@"OutputFiles\Test.dcm"); Dataset = dataset; }
var data = Dataset.Get<Byte[]>(DicomTag.EncapsulatedDocument); #region save PDF to disk
if (!Directory.Exists("OutputFiles")) { Directory.CreateDirectory("OutputFiles"); }
var writer = new BinaryWriter(File.OpenWrite(@"OutputFiles\Text.dcm.pdf")); // Writer raw data writer.Write(data); writer.Flush(); writer.Close(); #endregion
using (FileStream fs = new FileStream(Path.Combine(path, "pdf.pdf"), FileMode.Create, FileAccess.Write, FileShare.None)){ using (Document doc = new Document()) { using (PdfWriter writer = PdfWriter.GetInstance(doc, fs)) { doc.Open(); doc.Add(new Paragraph("Hello World")); doc.Close(); } }
}PdfDocument document = new PdfDocument();document.Info.Title = "Created with PDFsharp";PdfPage page = document.AddPage();XGraphics gfx = XGraphics.FromPdfPage(page);XFont font = new XFont("Verdana", 20, XFontStyle.BoldItalic, new XPdfFontOptions(PdfFontEncoding.Unicode, PdfFontEmbedding.None));gfx.DrawString("Hello, World!", font, XBrushes.Black,new XRect(0, 0, page.Width, page.Height),XStringFormats.Center);
string filename = Path.Combine(path, "pdf.pdf");document.Save(filename);