Giter VIP home page Giter VIP logo

docxtosource's Introduction

DocxToSource

A multi-platform application that will be able to generate dotnet source code based on OpenXml based documents. This is still a work in progress.

An initial mockup using WPF technologies is working, albeit not yet fully functional. Screenshots below....

Open an OpenXml based document: Open OpenXml based document

Highlight Syntax: Highlight Syntax

Switch Language: Switch Language

docxtosource's People

Contributors

rmboggs avatar rssiy avatar rstm-sf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

docxtosource's Issues

Program crashes when trying to open a document that is already open in Microsoft Office

If a document is opened by DocxToSource and then opened in Microsoft Office, it opens as read-only but opens without issues. However, if the document is already open in MS Office and then opened in DocxToSource, DocxToSource will crash. So either the program needs to be updated so it can open a document as read-only or it needs to simply capture the exception and explain to the user to close the document in MS Office before proceeding.

Xml window not hiding reliably when selecting OpenXmlPart object in tree

Just noticed this issue while working with application. If I manually resize the code windows (make source code window taller, for example) and select a different OpenXmlPart object in the navigation tree, the Xml window remains visible even though it should automatically hide. I need to research this further to see what exactly is going on.

Unable To Build Main Branch

Hello, not sure if this is still being actively worked on - but I am unable to build the main branch. Here's the steps I took:

  • Clone main branch
  • run git submodule update --init --recursive to update the submodule, seemed to pull the right commit.
  • Try to build:
    image

Text pasted below for easier reading:

0>------- Started building project: DocxToSource
0>DocxToSource.csproj: Error NU1605 : Warning As Error: Detected package downgrade: DocumentFormat.OpenXml from 3.0.1 to 2.14.0. Reference the package directly from the project to select a different version.
DocxToSource -> Serialize.OpenXml.CodeGen -> DocumentFormat.OpenXml (>= 3.0.1)
DocxToSource -> DocumentFormat.OpenXml (>= 2.14.0)
0>DocxToSource.csproj: Error NU1605 : Warning As Error: Detected package downgrade: System.CodeDom from 8.0.0 to 5.0.0. Reference the package directly from the project to select a different version.
DocxToSource -> Serialize.OpenXml.CodeGen -> System.CodeDom (>= 8.0.0)
DocxToSource -> System.CodeDom (>= 5.0.0)
0>------- Finished building project: DocxToSource. Succeeded: False. Errors: 2. Warnings: 0

Make this project actually cross platform

So in its current state, this project only runs on Windows. However, I think this project would greatly benefit from running cross-platform, especially since dotnet now runs on non-Windows platforms these days. The main project here currently is a WPF project, which, to my knowledge, is still limited to only Windows, so in order to make this project cross-platform is to decide what front end to switch to in order to make cross-platform a reality. I currently know of 3 options that can could achieve this goal:

  1. Avalonia
  2. Blazor (PWA)
  3. Javascript/typescript framework with Asp.Net WebAPI backend
    a) Can be hosted in desktop application using ElectronNet and/or WebView2
    b) Possible frameworks could include:
    1. Angular
    2. React
    3. Vue.js

I'm still up in the air as to which option to use so it would be interesting to get feedback from those who are interested.

Generated code for Table in Powerpoint does not open file correctly

Using generated code for Table in Powerpoint, the generated powerpoint will encounter "Powerpoint found a problem with content. Powerpoint can attempt to repair the presentation"

Root cause: code for ExtensionList in Table->TableGrid->GridColumn is incorrect

Generated by DocxToSource

           A.Extension aExtension = new A.Extension();
            aExtension.Uri = "{9D8B030D-6E8A-4147-A177-3AD203B41FA5}"; 
            OpenXmlUnknownElement openXmlUnknownElement = new OpenXmlUnknownElement("a16", "colId", "http://schemas.microsoft.com/office/drawing/2014/main");
            openXmlUnknownElement.AddNamespaceDeclaration("a16", "http://schemas.microsoft.com/office/drawing/2014/main");
            aExtension.Append(openXmlUnknownElement);
            aExtensionList.Append(aExtension);
            
            A.Extension aExtension1 = new A.Extension();
            aExtension1.Uri = "{0D108BD9-81ED-4DB2-BD59-A6C34878D82A}";
            OpenXmlUnknownElement openXmlUnknownElement1 = new OpenXmlUnknownElement("a16", "rowId", "http://schemas.microsoft.com/office/drawing/2014/main");
            openXmlUnknownElement1.AddNamespaceDeclaration("a16", "http://schemas.microsoft.com/office/drawing/2014/main");
            openXmlUnknownElement1.AddNamespaceDeclaration("p14", "http://schemas.microsoft.com/office/powerpoint/2010/main");
            aExtension1.Append(openXmlUnknownElement1);

But when using code generated by SDK Productivity Tool, the generated powerpoint opens correctly.

Generated by SDK Productivity Tool

            Extension extension1 = new Extension(){ Uri = "{9D8B030D-6E8A-4147-A177-3AD203B41FA5}" };
            OpenXmlUnknownElement openXmlUnknownElement1 = OpenXmlUnknownElement.CreateOpenXmlUnknownElement("<a16:colId xmlns:a16=\"http://schemas.microsoft.com/office/drawing/2014/main\" val=\"20005\" />");
            extension1.Append(openXmlUnknownElement1);

            Extension extension2 = new Extension(){ Uri = "{0D108BD9-81ED-4DB2-BD59-A6C34878D82A}" };
            OpenXmlUnknownElement openXmlUnknownElement2 = OpenXmlUnknownElement.CreateOpenXmlUnknownElement("<a16:rowId xmlns:a16=\"http://schemas.microsoft.com/office/drawing/2014/main\" xmlns:p14=\"http://schemas.microsoft.com/office/powerpoint/2010/main\" />");
            extension2.Append(openXmlUnknownElement2);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.