/// <summary> /// Sets the export options of the indesign document to HTML /// </summary> /// <param name="doc"></param> protected void SetInDesignHtmlExportOptions(InDesignDocument doc) { // General export options doc.HTMLExportPreferences.ExportSelection = false; doc.HTMLExportPreferences.ExportOrder = idExportOrder.idLayoutOrder; doc.HTMLExportPreferences.BulletExportOption = idBulletListExportOption.idUnorderedList; doc.HTMLExportPreferences.NumberedListExportOption = idNumberedListExportOption.idOrderedList; doc.HTMLExportPreferences.ViewDocumentAfterExport = true; // Image export options doc.HTMLExportPreferences.ImageExportOption = idImageExportOption.idOptimizedImage; doc.HTMLExportPreferences.PreserveLayoutAppearence = true; doc.HTMLExportPreferences.ImageExportResolution = idImageResolution.idPpi150; doc.HTMLExportPreferences.CustomImageSizeOption = idImageSizeOption.idSizeFixed; doc.HTMLExportPreferences.ImageAlignment = idImageAlignmentType.idAlignCenter; doc.HTMLExportPreferences.ImageSpaceBefore = 0; doc.HTMLExportPreferences.ImageSpaceAfter = 0; //doc.HTMLExportPreferences.ApplyImageAlignmentToAnchoredObjectSettings = true; doc.HTMLExportPreferences.ImageConversion = idImageConversion.idJPEG; doc.HTMLExportPreferences.JPEGOptionsQuality = idJPEGOptionsQuality.idMedium; doc.HTMLExportPreferences.JPEGOptionsFormat = idJPEGOptionsFormat.idProgressiveEncoding; doc.HTMLExportPreferences.IgnoreObjectConversionSettings = false; // Advanced export options //doc.HTMLExportPreferences.CSSExportOption = idStyleSheetExportOption.idEmbeddedCSS; //doc.HTMLExportPreferences.IncludeCSSDefinition = true; doc.HTMLExportPreferences.PreserveLocalOverride = false; }
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { try { Type type = Type.GetTypeFromProgID("InDesign.Application"); Application inDesignApp = (Application)Activator.CreateInstance(type); InDesign.Document inDesignDocument = inDesignApp.Documents.Add(); //Create 5 new blank pages for (var i = 0; i < 5; i++) { inDesignDocument.Pages.Add(idLocationOptions.idAtBeginning); } return(Result.Succeeded); } catch (Exception ex) { message = ex.Message; return(Result.Failed); } }
/// <summary> /// Converts the InDesign document input file into OneNote /// </summary> /// <param name="inputFile"></param> /// <param name="outputDir"></param> /// <returns></returns> public virtual bool ConvertInDesignToOneNote(string inputFile, string outputDir) { #if INDESIGN_INSTALLED // get the file name string inputFileName = Path.GetFileNameWithoutExtension(inputFile); // gets the InDesign App Type inDesignAppType = Type.GetTypeFromProgID(ConfigurationManager.AppSettings.Get("InDesignProgId")); if (inDesignAppType == null) { throw new InvalidOperationException("Failed to find InDesign application. Please ensure that it is installed and is running on your machine."); } InDesignApplication app = (InDesignApplication)Activator.CreateInstance(inDesignAppType, true); // open the indd file try { app.Open(inputFile); } catch (Exception e) { Console.WriteLine(@"Error in ConvertInDesignToOneNote for file {0}: {1}", inputFile, e.Message); return(false); } InDesignDocument doc = app.ActiveDocument; // temp directory for html string htmlDir = Utility.CreateDirectory(Utility.NewFolderPath(outputDir, "html")); // Get the file name string htmlFile = Utility.NewFilePath(htmlDir, inputFileName, HtmlFileExtension); // Save the html file SetInDesignHtmlExportOptions(doc); doc.Export(idExportFormat.idHTML, htmlFile); // Create a new OneNote Notebook var note = new OneNoteGenerator(outputDir); string notebookId = note.CreateNotebook(GetSupportedInputFormat()); string sectionId = note.CreateSection(inputFileName, notebookId); // get the html var htmlDoc = new HtmlDocument(); htmlDoc.Load(htmlFile); // change the links to have the full path ModifyInDesignHtmlLinks(htmlDoc, htmlDir); // get the title string title = GetInDesignTitle(htmlDoc); string pageId = note.CreatePage(title, sectionId); note.AddPageContentAsHtmlBlock(pageId, htmlDoc.DocumentNode.OuterHtml); return(true); #else throw new NotImplementedException(); #endif }