Compare commits

...

21 Commits

Author SHA1 Message Date
netquick 43da06fbdf
Delete OfficeConverter directory 2024-01-31 00:00:44 +01:00
Domi 4061d94bcd removed old .Net Framework 4.8 versoin 2024-01-30 23:58:01 +01:00
netquick 07b74ab9be
Update README.md 2024-01-30 23:13:52 +01:00
netquick 05a55da8e3
Update README.md 2024-01-30 23:13:04 +01:00
Domi 8f6433f16a Fixed several errors and errorhandling 2024-01-30 23:06:07 +01:00
Domi b71af71035 fixed .xlt logic 2024-01-30 14:22:23 +01:00
Domi d66c521db0 added .xlt 2024-01-30 13:39:23 +01:00
Domi 55e1b7a73d Added logic for templates .dot 2024-01-30 12:51:43 +01:00
Domi 64f033be20 Merge branch 'master' of https://github.com/netquick/OfficeConverter 2024-01-29 09:33:57 +01:00
Domi fbbe981392 Corrected error skipping .ppt files 2024-01-29 09:33:44 +01:00
netquick d27239c61b
Update README.md 2024-01-29 01:01:16 +01:00
netquick fe1777ed1e
Update README.md 2024-01-29 00:55:14 +01:00
netquick 9ffbe6dc7d
Update README.md 2024-01-29 00:54:11 +01:00
netquick 8ba225a5bb
Update README.md 2024-01-29 00:41:48 +01:00
Domi aea2e325f6 new .NET 6 Build 2024-01-29 00:39:18 +01:00
Domi 0a896bc43f Merge branch 'master' of https://github.com/netquick/OfficeConverter 2024-01-29 00:20:45 +01:00
Domi 46384c8469 cleaned up 2024-01-29 00:20:33 +01:00
netquick e786cf4867
Create dotnet-desktop.yml 2024-01-28 23:32:15 +01:00
Domi 5998eae01a Merge branch 'master' of https://github.com/netquick/OfficeConverter 2024-01-28 23:23:05 +01:00
netquick 362ee135a1
Update README.md 2024-01-28 23:22:49 +01:00
Domi 7e2410e948 exe removed 2024-01-28 23:22:42 +01:00
26 changed files with 756 additions and 589 deletions

115
.github/workflows/dotnet-desktop.yml vendored Normal file
View File

@ -0,0 +1,115 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build, test, sign and package a WPF or Windows Forms desktop application
# built on .NET Core.
# To learn how to migrate your existing application to .NET Core,
# refer to https://docs.microsoft.com/en-us/dotnet/desktop-wpf/migration/convert-project-from-net-framework
#
# To configure this workflow:
#
# 1. Configure environment variables
# GitHub sets default environment variables for every workflow run.
# Replace the variables relative to your project in the "env" section below.
#
# 2. Signing
# Generate a signing certificate in the Windows Application
# Packaging Project or add an existing signing certificate to the project.
# Next, use PowerShell to encode the .pfx file using Base64 encoding
# by running the following Powershell script to generate the output string:
#
# $pfx_cert = Get-Content '.\SigningCertificate.pfx' -Encoding Byte
# [System.Convert]::ToBase64String($pfx_cert) | Out-File 'SigningCertificate_Encoded.txt'
#
# Open the output file, SigningCertificate_Encoded.txt, and copy the
# string inside. Then, add the string to the repo as a GitHub secret
# and name it "Base64_Encoded_Pfx."
# For more information on how to configure your signing certificate for
# this workflow, refer to https://github.com/microsoft/github-actions-for-desktop-apps#signing
#
# Finally, add the signing certificate password to the repo as a secret and name it "Pfx_Key".
# See "Build the Windows Application Packaging project" below to see how the secret is used.
#
# For more information on GitHub Actions, refer to https://github.com/features/actions
# For a complete CI/CD sample to get started with GitHub Action workflows for Desktop Applications,
# refer to https://github.com/microsoft/github-actions-for-desktop-apps
name: .NET Core Desktop
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
jobs:
build:
strategy:
matrix:
configuration: [Debug, Release]
runs-on: windows-latest # For a list of available runner types, refer to
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on
env:
Solution_Name: OfficeConverter.sln # Replace with your solution name, i.e. MyWpfApp.sln.
Test_Project_Path: OfficeConverter\OfficeConverter.csproj # Replace with the path to your test project, i.e. MyWpfApp.Tests\MyWpfApp.Tests.csproj.
Wap_Project_Directory: your-wap-project-directory-name # Replace with the Wap project directory relative to the solution, i.e. MyWpfApp.Package.
Wap_Project_Path: your-wap-project-path # Replace with the path to your Wap project, i.e. MyWpf.App.Package\MyWpfApp.Package.wapproj.
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
# Install the .NET Core workload
- name: Install .NET Core
uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.x
# Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild
- name: Setup MSBuild.exe
uses: microsoft/setup-msbuild@v1.0.2
# Execute all unit tests in the solution
- name: Execute unit tests
run: dotnet test
# Restore the application to populate the obj folder with RuntimeIdentifiers
- name: Restore the application
run: msbuild $env:Solution_Name /t:Restore /p:Configuration=$env:Configuration
env:
Configuration: ${{ matrix.configuration }}
# Decode the base 64 encoded pfx and save the Signing_Certificate
- name: Decode the pfx
run: |
$pfx_cert_byte = [System.Convert]::FromBase64String("${{ secrets.Base64_Encoded_Pfx }}")
$certificatePath = Join-Path -Path $env:Wap_Project_Directory -ChildPath GitHubActionsWorkflow.pfx
[IO.File]::WriteAllBytes("$certificatePath", $pfx_cert_byte)
# Create the app package by building and packaging the Windows Application Packaging project
- name: Create the app package
run: msbuild $env:Wap_Project_Path /p:Configuration=$env:Configuration /p:UapAppxPackageBuildMode=$env:Appx_Package_Build_Mode /p:AppxBundle=$env:Appx_Bundle /p:PackageCertificateKeyFile=GitHubActionsWorkflow.pfx /p:PackageCertificatePassword=${{ secrets.Pfx_Key }}
env:
Appx_Bundle: Always
Appx_Bundle_Platforms: x86|x64
Appx_Package_Build_Mode: StoreUpload
Configuration: ${{ matrix.configuration }}
# Remove the pfx
- name: Remove the pfx
run: Remove-Item -path $env:Wap_Project_Directory\GitHubActionsWorkflow.pfx
# Upload the MSIX package: https://github.com/marketplace/actions/upload-a-build-artifact
- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: MSIX Package
path: ${{ env.Wap_Project_Directory }}\AppPackages

View File

@ -3,12 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.7.34031.279
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OfficeConverter", "OfficeConverter\OfficeConverter.csproj", "{6E77662E-82C3-4913-8964-5A452B229F78}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Projektmappenelemente", "Projektmappenelemente", "{D66D2D0C-17EE-4008-BB58-DDD6EB016AAB}"
ProjectSection(SolutionItems) = preProject
OfficeConverter\OfficeConverter.exe = OfficeConverter\OfficeConverter.exe
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OfficeConverterCore", "OfficeConverterCore\OfficeConverterCore.csproj", "{B996BAD7-81B4-47F1-84E9-73ABE48859AC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -16,16 +13,22 @@ Global
Debug|x64 = Debug|x64
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Test|Any CPU = Test|Any CPU
Test|x64 = Test|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6E77662E-82C3-4913-8964-5A452B229F78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6E77662E-82C3-4913-8964-5A452B229F78}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6E77662E-82C3-4913-8964-5A452B229F78}.Debug|x64.ActiveCfg = Debug|x64
{6E77662E-82C3-4913-8964-5A452B229F78}.Debug|x64.Build.0 = Debug|x64
{6E77662E-82C3-4913-8964-5A452B229F78}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6E77662E-82C3-4913-8964-5A452B229F78}.Release|Any CPU.Build.0 = Release|Any CPU
{6E77662E-82C3-4913-8964-5A452B229F78}.Release|x64.ActiveCfg = Release|x64
{6E77662E-82C3-4913-8964-5A452B229F78}.Release|x64.Build.0 = Release|x64
{B996BAD7-81B4-47F1-84E9-73ABE48859AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B996BAD7-81B4-47F1-84E9-73ABE48859AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B996BAD7-81B4-47F1-84E9-73ABE48859AC}.Debug|x64.ActiveCfg = Debug|Any CPU
{B996BAD7-81B4-47F1-84E9-73ABE48859AC}.Debug|x64.Build.0 = Debug|Any CPU
{B996BAD7-81B4-47F1-84E9-73ABE48859AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B996BAD7-81B4-47F1-84E9-73ABE48859AC}.Release|Any CPU.Build.0 = Release|Any CPU
{B996BAD7-81B4-47F1-84E9-73ABE48859AC}.Release|x64.ActiveCfg = Release|Any CPU
{B996BAD7-81B4-47F1-84E9-73ABE48859AC}.Release|x64.Build.0 = Release|Any CPU
{B996BAD7-81B4-47F1-84E9-73ABE48859AC}.Test|Any CPU.ActiveCfg = Debug|Any CPU
{B996BAD7-81B4-47F1-84E9-73ABE48859AC}.Test|Any CPU.Build.0 = Debug|Any CPU
{B996BAD7-81B4-47F1-84E9-73ABE48859AC}.Test|x64.ActiveCfg = Debug|Any CPU
{B996BAD7-81B4-47F1-84E9-73ABE48859AC}.Test|x64.Build.0 = Debug|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8.1"/>
</startup>
</configuration>

View File

@ -1,3 +0,0 @@
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<Costura />
</Weavers>

View File

@ -1,428 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Costura.Fody.5.7.0\build\Costura.Fody.props" Condition="Exists('..\packages\Costura.Fody.5.7.0\build\Costura.Fody.props')" />
<Import Project="..\packages\ILMerge.3.0.41\build\ILMerge.props" Condition="Exists('..\packages\ILMerge.3.0.41\build\ILMerge.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{6E77662E-82C3-4913-8964-5A452B229F78}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>OfficeConverter</RootNamespace>
<AssemblyName>OfficeConverter</AssemblyName>
<TargetFrameworkVersion>v4.8.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
<IsWebBootstrapper>false</IsWebBootstrapper>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<PublishUrl>D:\OneDrive - wyniger\Design &amp; Development\Code\Publish\DocConvert\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>5</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ManifestCertificateThumbprint>43955F90264C43EAA4330714374C483BFDF3B6C5</ManifestCertificateThumbprint>
</PropertyGroup>
<PropertyGroup>
<ManifestKeyFile>OfficeConverter_TemporaryKey.pfx</ManifestKeyFile>
</PropertyGroup>
<PropertyGroup>
<GenerateManifests>true</GenerateManifests>
</PropertyGroup>
<PropertyGroup>
<SignManifests>true</SignManifests>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>icons8-microsoft-office-480.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="Costura, Version=5.7.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Costura.Fody.5.7.0\lib\netstandard1.0\Costura.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Win32.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System">
<Private>True</Private>
</Reference>
<Reference Include="System.AppContext, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.AppContext.4.3.0\lib\net463\System.AppContext.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.ComponentModel.Composition">
<Private>True</Private>
</Reference>
<Reference Include="System.Console, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Console.4.3.0\lib\net46\System.Console.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Data">
<Private>True</Private>
</Reference>
<Reference Include="System.Diagnostics.DiagnosticSource, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Diagnostics.DiagnosticSource.4.3.0\lib\net46\System.Diagnostics.DiagnosticSource.dll</HintPath>
</Reference>
<Reference Include="System.Diagnostics.Tracing, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Diagnostics.Tracing.4.3.0\lib\net462\System.Diagnostics.Tracing.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Globalization.Calendars, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO.Compression.FileSystem">
<Private>True</Private>
</Reference>
<Reference Include="System.IO.Compression.ZipFile, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO.FileSystem, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO.FileSystem.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Linq, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Linq.4.3.0\lib\net463\System.Linq.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Linq.Expressions, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Linq.Expressions.4.3.0\lib\net463\System.Linq.Expressions.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Sockets, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Numerics">
<Private>True</Private>
</Reference>
<Reference Include="System.Reflection, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reflection.4.3.0\lib\net462\System.Reflection.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.Extensions, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.Extensions.4.3.0\lib\net462\System.Runtime.Extensions.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.InteropServices, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.InteropServices.4.3.0\lib\net463\System.Runtime.InteropServices.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Text.RegularExpressions, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.RegularExpressions.4.3.0\lib\net463\System.Text.RegularExpressions.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Windows.Controls.Input.Toolkit, Version=3.5.40128.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Infragistics.Themes.MetroDark.Wpf.1.0.0\lib\net40\System.Windows.Controls.Input.Toolkit.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Controls.Layout.Toolkit, Version=3.5.40128.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Infragistics.Themes.MetroDark.Wpf.1.0.0\lib\net40\System.Windows.Controls.Layout.Toolkit.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Forms">
<Private>True</Private>
</Reference>
<Reference Include="System.Xml">
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.CSharp">
<Private>True</Private>
</Reference>
<Reference Include="System.Core">
<Private>True</Private>
</Reference>
<Reference Include="System.Xml.Linq">
<Private>True</Private>
</Reference>
<Reference Include="System.Data.DataSetExtensions">
<Private>True</Private>
</Reference>
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
<Private>True</Private>
</Reference>
<Reference Include="System.Xml.ReaderWriter, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="WindowsBase">
<Private>True</Private>
</Reference>
<Reference Include="PresentationCore">
<Private>True</Private>
</Reference>
<Reference Include="PresentationFramework">
<Private>True</Private>
</Reference>
<Reference Include="WPFToolkit, Version=3.5.40128.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Infragistics.Themes.MetroDark.Wpf.1.0.0\lib\net40\WPFToolkit.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Page Include="MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon>
<SubType>Code</SubType>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Page Include="Themes\MetroDark\MetroDark.MSControls.Core.Implicit.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Themes\MetroDark\MetroDark.MSControls.Toolkit.Implicit.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Themes\MetroDark\Styles.Shared.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Themes\MetroDark\Styles.WPF.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Themes\MetroDark\Theme.Colors.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="OfficeConverter_TemporaryKey.pfx" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Resource Include="Themes\MetroDark\HowToApplyTheme.txt" />
</ItemGroup>
<ItemGroup>
<COMReference Include="Microsoft.Office.Core">
<Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid>
<VersionMajor>2</VersionMajor>
<VersionMinor>8</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
<COMReference Include="Microsoft.Office.Interop.Excel">
<Guid>{00020813-0000-0000-C000-000000000046}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>9</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
<COMReference Include="Microsoft.Office.Interop.PowerPoint">
<Guid>{91493440-5A91-11CF-8700-00AA0060263B}</Guid>
<VersionMajor>2</VersionMajor>
<VersionMinor>12</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
<COMReference Include="Microsoft.Office.Interop.Word">
<Guid>{00020905-0000-0000-C000-000000000046}</Guid>
<VersionMajor>8</VersionMajor>
<VersionMinor>7</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
<COMReference Include="VBIDE">
<Guid>{0002E157-0000-0000-C000-000000000046}</Guid>
<VersionMajor>5</VersionMajor>
<VersionMinor>3</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.8.1">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4.8.1 %28x86 und x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<Resource Include="icons8-microsoft-office-480.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\ILMerge.3.0.41\build\ILMerge.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\ILMerge.3.0.41\build\ILMerge.props'))" />
<Error Condition="!Exists('..\packages\Fody.6.5.5\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.6.5.5\build\Fody.targets'))" />
<Error Condition="!Exists('..\packages\Costura.Fody.5.7.0\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.5.7.0\build\Costura.Fody.props'))" />
<Error Condition="!Exists('..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets'))" />
</Target>
<Import Project="..\packages\Fody.6.5.5\build\Fody.targets" Condition="Exists('..\packages\Fody.6.5.5\build\Fody.targets')" />
<Import Project="..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets" Condition="Exists('..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets')" />
</Project>

Binary file not shown.

View File

@ -1,55 +0,0 @@
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;
// Allgemeine Informationen über eine Assembly werden über die folgenden
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
// die einer Assembly zugeordnet sind.
[assembly: AssemblyTitle("OfficeConverter")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("OfficeConverter")]
[assembly: AssemblyCopyright("Copyright © 2024")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
[assembly: ComVisible(false)]
//Um mit dem Erstellen lokalisierbarer Anwendungen zu beginnen, legen Sie
//<UICulture>ImCodeVerwendeteKultur</UICulture> in der .csproj-Datei
//in einer <PropertyGroup> fest. Wenn Sie in den Quelldateien beispielsweise Deutsch
//(Deutschland) verwenden, legen Sie <UICulture> auf \"de-DE\" fest. Heben Sie dann die Auskommentierung
//des nachstehenden NeutralResourceLanguage-Attributs auf. Aktualisieren Sie "en-US" in der nachstehenden Zeile,
//sodass es mit der UICulture-Einstellung in der Projektdatei übereinstimmt.
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //Speicherort der designspezifischen Ressourcenwörterbücher
//(wird verwendet, wenn eine Ressource auf der Seite nicht gefunden wird,
// oder in den Anwendungsressourcen-Wörterbüchern nicht gefunden werden kann.)
ResourceDictionaryLocation.SourceAssembly //Speicherort des generischen Ressourcenwörterbuchs
//(wird verwendet, wenn eine Ressource auf der Seite nicht gefunden wird,
// designspezifischen Ressourcenwörterbuch nicht gefunden werden kann.)
)]
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
//
// Hauptversion
// Nebenversion
// Buildnummer
// Revision
//
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// indem Sie "*" wie unten gezeigt eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -1,53 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Costura.Fody" version="5.7.0" targetFramework="net481" developmentDependency="true" />
<package id="Fody" version="6.5.5" targetFramework="net481" developmentDependency="true" />
<package id="ILMerge" version="3.0.41" targetFramework="net481" />
<package id="Infragistics.Themes.MetroDark.Wpf" version="1.0.0" targetFramework="net451" />
<package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="net481" />
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net481" />
<package id="NETStandard.Library" version="1.6.1" targetFramework="net481" />
<package id="System.AppContext" version="4.3.0" targetFramework="net481" />
<package id="System.Collections" version="4.3.0" targetFramework="net481" />
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net481" />
<package id="System.Console" version="4.3.0" targetFramework="net481" />
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net481" />
<package id="System.Diagnostics.DiagnosticSource" version="4.3.0" targetFramework="net481" />
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net481" />
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net481" />
<package id="System.Globalization" version="4.3.0" targetFramework="net481" />
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="net481" />
<package id="System.IO" version="4.3.0" targetFramework="net481" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net481" />
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="net481" />
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="net481" />
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net481" />
<package id="System.Linq" version="4.3.0" targetFramework="net481" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net481" />
<package id="System.Net.Http" version="4.3.0" targetFramework="net481" />
<package id="System.Net.Primitives" version="4.3.0" targetFramework="net481" />
<package id="System.Net.Sockets" version="4.3.0" targetFramework="net481" />
<package id="System.ObjectModel" version="4.3.0" targetFramework="net481" />
<package id="System.Reflection" version="4.3.0" targetFramework="net481" />
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net481" />
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="net481" />
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net481" />
<package id="System.Runtime" version="4.3.0" targetFramework="net481" />
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net481" />
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="net481" />
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net481" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net481" />
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net481" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net481" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net481" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net481" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net481" />
<package id="System.Text.Encoding" version="4.3.0" targetFramework="net481" />
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net481" />
<package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="net481" />
<package id="System.Threading" version="4.3.0" targetFramework="net481" />
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="net481" />
<package id="System.Threading.Timer" version="4.3.0" targetFramework="net481" />
<package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="net481" />
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="net481" />
</packages>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8.1" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@ -5,14 +5,9 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:OfficeConverter"
mc:Ignorable="d"
Title="OfficeConverter 1.0" Height="715" Width="1045" Background="#FF1A1A1A">
Title="OfficeConverter 1.0" Height="715" Width="1460" Background="#FF1A1A1A">
<Grid Background="#FF424242">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="356*"/>
<ColumnDefinition Width="689*"/>
</Grid.ColumnDefinitions>
<Grid Margin="0,70,0,0" Background="#FF1A1A1A" Grid.ColumnSpan="2">
<GroupBox x:Name="grpFolders" Header="grpFolders" Margin="10,10,0,0" RenderTransformOrigin="0.5,0.5" Height="276" VerticalAlignment="Top" HorizontalAlignment="Left" Width="694">
<GroupBox.RenderTransform>
@ -34,11 +29,13 @@
<Button x:Name="btnDestFolder" Content="btnDest" Margin="545,171,0,0" VerticalAlignment="Top" Click="btnDestFolder_Click"/>
</Grid>
</GroupBox>
<GroupBox x:Name="grpFiles" Header="grpFiles" Margin="709,10,0,0" Height="147" VerticalAlignment="Top" HorizontalAlignment="Left" Width="300">
<GroupBox x:Name="grpFiles" Header="grpFiles" Margin="709,10,0,0" Height="276" VerticalAlignment="Top" HorizontalAlignment="Left" Width="300">
<Grid>
<CheckBox x:Name="chkWord" Content="Word .doc" HorizontalAlignment="Left" Margin="0,10,0,0" VerticalAlignment="Top"/>
<CheckBox x:Name="chkExcel" Content="Excel .xls" HorizontalAlignment="Left" Margin="0,45,0,0" VerticalAlignment="Top"/>
<CheckBox x:Name="chkPowerpoint" Content="PowerPoint .ppt" HorizontalAlignment="Left" Margin="0,80,0,0" VerticalAlignment="Top"/>
<CheckBox x:Name="chkWordTmpl" Content="Wordtemplates .dot" HorizontalAlignment="Left" Margin="0,115,0,0" VerticalAlignment="Top"/>
<CheckBox x:Name="chkExcelTmpl" Content="Exceltemplates .xlt" HorizontalAlignment="Left" Margin="0,150,0,0" VerticalAlignment="Top"/>
</Grid>
</GroupBox>
<GroupBox x:Name="grpSourceFiles" Header="grpSourceFiles" Margin="10,291,0,0" Height="259" VerticalAlignment="Top" HorizontalAlignment="Left" Width="497">
@ -51,13 +48,25 @@
<ListBox x:Name="lstDestFiles" ItemsSource="{Binding convertedFiles}" />
</Grid>
</GroupBox>
<Button x:Name="btnConvert" Content="Button" HorizontalAlignment="Left" Margin="835,162,0,0" VerticalAlignment="Top" Width="174" Height="66" Click="btnConvert_Click"/>
<Label x:Name="lblState" Content="lblState" HorizontalAlignment="Left" Margin="709,258,0,0" VerticalAlignment="Top" Width="300" Height="28"/>
<Button x:Name="btnConvert" Content="Button" HorizontalAlignment="Left" Margin="10,555,0,0" VerticalAlignment="Top" Width="174" Height="42" Click="btnConvert_Click"/>
<Button x:Name="btnExport" Content="btnExport" HorizontalAlignment="Left" Height="33" Margin="915,555,0,0" VerticalAlignment="Top" Width="94" Click="btnExport_Click"/>
<Button x:Name="btnDelete" Content="btnDelete" HorizontalAlignment="Left" Margin="793,555,0,0" VerticalAlignment="Top" Width="117" Height="33" Click="btnDelete_Click"/>
<GroupBox HorizontalAlignment="Left" Height="540" Header="Log" Margin="1028,10,0,0" VerticalAlignment="Top" Width="360">
<Grid>
<ListBox x:Name="lstLog" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" ScrollViewer.HorizontalScrollBarVisibility="Auto">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" TextAlignment="Left"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</GroupBox>
<Button x:Name="btnExportLog" Content="btnExportLog" HorizontalAlignment="Left" Height="33" Margin="1294,555,0,0" VerticalAlignment="Top" Width="94" Click="btnExport_Click"/>
<Label x:Name="lblState" Content="Label" HorizontalAlignment="Left" Margin="189,569,0,0" VerticalAlignment="Top" Width="519"/>
</Grid>
<Label Content="Office Document Converter" HorizontalAlignment="Left" Margin="10,16,0,0" VerticalAlignment="Top" Width="277" FontSize="20"/>
<ComboBox x:Name="cmbLang" HorizontalAlignment="Left" Margin="470,33,0,0" VerticalAlignment="Top" Width="120" SelectionChanged="cmbLang_SelectionChanged" Grid.Column="1"/>
<ComboBox x:Name="cmbLang" HorizontalAlignment="Left" Margin="1267,33,0,0" VerticalAlignment="Top" Width="120" SelectionChanged="cmbLang_SelectionChanged"/>
</Grid>
</Window>

View File

@ -1,8 +1,10 @@
using System;
using Microsoft.VisualBasic;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Threading;
using System.Threading.Tasks;
@ -27,24 +29,36 @@ namespace OfficeConverter
//Definiter listen für die Anzeige im GUI
List<string> combinedFiles = new List<string>();
List<string> convertedFiles = new List<string>();
private List<string> logEntries = new List<string>();
string msgConversionInProgress = "Conversion in progress";
string msgConversionComplete = "Conversion complete";
//Globalvariables
bool doSubfolders = false;
bool doReplace = false;
bool doWord = false;
bool doExcel = false;
bool doPPoint = false;
bool doWordTmpl = false;
bool doExcelTmpl = false;
string errorFolderEmpty = "";
public MainWindow()
{
InitializeComponent();
System.Diagnostics.PresentationTraceSources.SetTraceLevel(lstSourceFiles.ItemContainerGenerator, System.Diagnostics.PresentationTraceLevel.High);
setLangEN();
chkWord.IsChecked = true;
chkExcel.IsChecked = true;
chkPowerpoint.IsChecked = true;
cmbLang.Items.Add("EN");
cmbLang.Items.Add("DE");
cmbLang.Items.Add("FR");
cmbLang.Items.Add("IT");
cmbLang.Items.Add("BN");
cmbLang.SelectedIndex = 0;
lstDestFiles.ItemsSource = convertedFiles;
@ -56,6 +70,22 @@ namespace OfficeConverter
lblState.Content = "Ready";
cancellationTokenSource = new CancellationTokenSource();
}
private void UpdateLog(string logEntry)
{
// Use Dispatcher.Invoke to update UI elements from the UI thread
System.Windows.Application.Current.Dispatcher.Invoke(() =>
{
logEntries.Add(logEntry);
// Update the ListBox with log entries
lstLog.ItemsSource = logEntries;
lstLog.Items.Refresh();
lstLog.ScrollIntoView(logEntry);
lstLog.HorizontalContentAlignment = HorizontalAlignment.Right;
});
}
//Konvertier-Button
@ -70,13 +100,17 @@ namespace OfficeConverter
{
lblState.Content = "Konvertierung läuft";
}
doSubfolders = (bool)chkSubfolders.IsChecked;
doReplace = (bool)chkReplace.IsChecked;
doWord = (bool)chkWord.IsChecked;
doExcel = (bool)chkExcel.IsChecked;
doPPoint = (bool)chkPowerpoint.IsChecked;
doWordTmpl = (bool)chkWordTmpl.IsChecked;
doExcelTmpl = (bool)chkExcelTmpl.IsChecked;
logEntries.Clear();
lstLog.Items.Refresh();
// Check if the background worker is not already running
if (!backgroundWorker.IsBusy)
{
@ -140,6 +174,8 @@ namespace OfficeConverter
combinedFiles.ForEach(file => lstSourceFiles.Items.Add(file));
// Enable buttons after conversion completion
UpdateButtonStates(true);
grpSourceFiles.Header = "Queue";
lblState.Content = msgConversionComplete;
});
}
}
@ -155,29 +191,58 @@ namespace OfficeConverter
}
// Iterate over currentFolderFiles and start the conversion asynchronously
private async Task SearchAndConvertDocs(string folderPath, CancellationToken cancellationToken)
{
string[] docFiles = null;
string[] xlsFiles = null;
string[] pptFiles = null;
string[] dotFiles = null;
string[] xltFiles = null;
int wordFilesCount = 0;
int excelFilesCount = 0;
int powerpointFilesCount = 0;
int wordTemplateFilesCount = 0;
int excelTemplateFilesCount = 0;
if (doWord)
{
docFiles = Directory.GetFiles(folderPath, "*.doc");
wordFilesCount = docFiles.Length;
UpdateLog($"Found {wordFilesCount} Word files (*.doc) in folder {folderPath}");
}
if (doExcel)
{
xlsFiles = Directory.GetFiles(folderPath, "*.xls");
excelFilesCount = xlsFiles.Length;
UpdateLog($"Found {excelFilesCount} Excel files (*.xls) in folder {folderPath}");
}
if (doPPoint)
{
pptFiles = Directory.GetFiles(folderPath, "*.ppt");
powerpointFilesCount = pptFiles.Length;
UpdateLog($"Found {powerpointFilesCount} PowerPoint files (*.ppt) in folder {folderPath}");
}
if (doWordTmpl)
{
dotFiles = Directory.GetFiles(folderPath, "*.dot");
wordTemplateFilesCount = dotFiles.Length;
UpdateLog($"Found {wordTemplateFilesCount} Word template files (*.dot) in folder {folderPath}");
}
if (doExcelTmpl)
{
xltFiles = Directory.GetFiles(folderPath, "*.xlt");
excelTemplateFilesCount = xltFiles.Length;
UpdateLog($"Found {excelTemplateFilesCount} Excel template files (*.xlt) in folder {folderPath}");
}
// Check for null before adding to combinedFiles
if (docFiles != null)
{
combinedFiles.AddRange(docFiles);
}
if (xlsFiles != null)
{
@ -187,8 +252,17 @@ namespace OfficeConverter
{
combinedFiles.AddRange(pptFiles);
}
if (dotFiles != null)
{
combinedFiles.AddRange(dotFiles);
}
if (xltFiles != null)
{
combinedFiles.AddRange(xltFiles);
}
Console.WriteLine($"Processing files in folder: {folderPath}");
UpdateLog($"Processing files in folder: {folderPath}");
/// Create a copy of the collection to avoid modification during iteration
List<string> snapshot = new List<string>(combinedFiles);
@ -231,6 +305,7 @@ namespace OfficeConverter
{
combinedFiles.Clear();
}
}
catch (OperationCanceledException)
{
@ -244,6 +319,12 @@ namespace OfficeConverter
foreach (var subfolder in subfolders)
{
// Pass the cancellation token to the recursive call
System.Windows.Application.Current.Dispatcher.Invoke(() =>
{
string headerName = Path.GetFileName(subfolder);
grpSourceFiles.Header = headerName;
});
await SearchAndConvertDocs(subfolder, cancellationToken);
// Check for cancellation after processing each subfolder
@ -254,14 +335,16 @@ namespace OfficeConverter
}
}
}
// Use Dispatcher.Invoke to update UI elements from the UI thread
//System.Windows.Application.Current.Dispatcher.Invoke(() =>
//{
// lblState.Content = "Background work completed!";
//});
System.Windows.Application.Current.Dispatcher.Invoke(() =>
{
lblState.Content = "Background work completed!";
});
DisplayCombinedFiles();
}
private async Task ConvertFileToNewFormatAsync(string filePath)
{
await Task.Run(() =>
@ -284,28 +367,48 @@ namespace OfficeConverter
case ".ppt":
ConvertPptToPptx(filePath, doSubfolders, doReplace);
break;
case ".dot":
ConvertDocToDotx(filePath, doSubfolders, doReplace);
break;
case ".xlt":
ConvertXltToXltx(filePath, doSubfolders, doReplace);
break;
default:
// Handle other file types or show an error message
Console.WriteLine($"Unsupported file type: {filePath}");
break;
}
string logEntry = $"Converted file: {filePath}";
Console.WriteLine(logEntry);
UpdateLog(logEntry);
System.Windows.Application.Current.Dispatcher.Invoke(() =>
{
combinedFiles.Remove(filePath);
if (!convertedFiles.Contains(filePath))
{
convertedFiles.Add(filePath);
DisplayCombinedFiles();
}
DisplayCombinedFiles();
});
}
catch (Exception ex)
{
// Handle exceptions during conversion
Console.WriteLine($"Error converting {filePath}: {ex.Message}");
string logEntry = $"Error converting {filePath}: {ex.Message}";
Console.WriteLine(logEntry);
UpdateLog(logEntry);
}
});
// Update UI on the main thread
System.Windows.Application.Current.Dispatcher.Invoke(() =>
{
combinedFiles.Remove(filePath);
convertedFiles.Add(filePath);
DisplayCombinedFiles();
});
}
private void ConvertXlsToXlsx(string xlsFile, bool doSubfolders, bool doReplace)
{
@ -335,6 +438,20 @@ namespace OfficeConverter
workbook.SaveAs(newXlsxPath, Excel.XlFileFormat.xlOpenXMLWorkbook);
workbook.Close();
}
catch (Exception ex)
{
// Handle or log the exception
Console.WriteLine($"Error converting {xlsFile} to .dotx: {ex.Message}");
string logEntry = $"Error converting {xlsFile} to .dotx: {ex.Message}";
System.Windows.Application.Current.Dispatcher.Invoke(() =>
{
logEntries.Add(logEntry);
// Update the ListBox with log entries
lstLog.ItemsSource = logEntries;
lstLog.Items.Refresh();
lstLog.ScrollIntoView(logEntry);
});
}
finally
{
// Quit Excel and release resources
@ -345,6 +462,77 @@ namespace OfficeConverter
KillProcess("EXCEL");
}
}
private void ConvertXltToXltx(string xltFile, bool doSubfolders, bool doReplace)
{
try
{
Excel.Application excelApp = new Excel.Application();
excelApp.DisplayAlerts = false;
try
{
Excel.Workbook workbook = excelApp.Workbooks.Open(xltFile);
string targetFolderPath = "";
// Use Dispatcher.Invoke to execute code on the UI thread
Dispatcher.Invoke(() =>
{
targetFolderPath = GetTargetFolderPath(doReplace, doSubfolders, xltFile);
});
// Ensure the target folder exists
if (!Directory.Exists(targetFolderPath))
{
Directory.CreateDirectory(targetFolderPath);
}
// Construct the new path for the .xltx file
string newXltxPath = Path.Combine(targetFolderPath, Path.ChangeExtension(Path.GetFileName(xltFile), ".xltx"));
workbook.SaveAs(newXltxPath, Excel.XlFileFormat.xlOpenXMLTemplate);
workbook.Close();
}
catch (Exception ex)
{
// Handle or log the exception
Console.WriteLine($"Error converting {xltFile} to .dotx: {ex.Message}");
string logEntry = $"Error converting {xltFile} to .dotx: {ex.Message}";
System.Windows.Application.Current.Dispatcher.Invoke(() =>
{
logEntries.Add(logEntry);
// Update the ListBox with log entries
lstLog.ItemsSource = logEntries;
lstLog.Items.Refresh();
lstLog.ScrollIntoView(logEntry);
});
}
finally
{
// Quit Excel and release resources
excelApp.Quit();
Marshal.ReleaseComObject(excelApp);
// Ensure Excel processes are terminated
KillProcess("EXCEL");
}
}
catch (Exception ex)
{
// Handle exceptions during conversion
Console.WriteLine($"Error converting {xltFile}: {ex.Message}");
}
// Update UI on the main thread
System.Windows.Application.Current.Dispatcher.Invoke(() =>
{
combinedFiles.Remove(xltFile);
convertedFiles.Add(xltFile);
DisplayCombinedFiles();
});
}
private void ConvertPptToPptx(string pptFile, bool doSubfolders, bool doReplace)
{
PowerPoint.Application pptApp = new PowerPoint.Application();
@ -376,6 +564,20 @@ namespace OfficeConverter
presentation.SaveAs(newPptxPath, PowerPoint.PpSaveAsFileType.ppSaveAsOpenXMLPresentation);
presentation.Close();
}
catch (Exception ex)
{
// Handle or log the exception
Console.WriteLine($"Error converting {pptFile} to .dotx: {ex.Message}");
string logEntry = $"Error converting {pptFile} to .dotx: {ex.Message}";
System.Windows.Application.Current.Dispatcher.Invoke(() =>
{
logEntries.Add(logEntry);
// Update the ListBox with log entries
lstLog.ItemsSource = logEntries;
lstLog.Items.Refresh();
lstLog.ScrollIntoView(logEntry);
});
}
finally
{
// Set PowerPoint application visibility back to true before quitting
@ -413,6 +615,20 @@ namespace OfficeConverter
doc.SaveAs2(newDocxPath, Word.WdSaveFormat.wdFormatXMLDocument);
doc.Close();
}
catch (Exception ex)
{
// Handle or log the exception
Console.WriteLine($"Error converting {docFile} to .dotx: {ex.Message}");
string logEntry = $"Error converting {docFile} to .dotx: {ex.Message}";
System.Windows.Application.Current.Dispatcher.Invoke(() =>
{
logEntries.Add(logEntry);
// Update the ListBox with log entries
lstLog.ItemsSource = logEntries;
lstLog.Items.Refresh();
lstLog.ScrollIntoView(logEntry);
});
}
finally
{
// Quit Word and release resources
@ -423,6 +639,59 @@ namespace OfficeConverter
KillProcess("WINWORD");
}
}
private void ConvertDocToDotx(string dotFile, bool doSubfolders, bool doReplace)
{
Word.Application wordApp = new Word.Application();
wordApp.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone;
try
{
Word.Document doc = wordApp.Documents.Open(dotFile);
string targetFolderPath = "";
// Use Dispatcher.Invoke to execute code on the UI thread
Dispatcher.Invoke(() =>
{
targetFolderPath = GetTargetFolderPath(doReplace, doSubfolders, dotFile);
});
// Ensure the target folder exists
if (!Directory.Exists(targetFolderPath))
{
Directory.CreateDirectory(targetFolderPath);
}
// Construct the new path for the .dotx file
string newDotxPath = Path.Combine(targetFolderPath, Path.ChangeExtension(Path.GetFileName(dotFile), ".dotx"));
doc.SaveAs2(newDotxPath, Word.WdSaveFormat.wdFormatXMLTemplate);
doc.Close();
}
catch (Exception ex)
{
// Handle or log the exception
Console.WriteLine($"Error converting {dotFile} to .dotx: {ex.Message}");
string logEntry = $"Error converting {dotFile} to .dotx: {ex.Message}";
System.Windows.Application.Current.Dispatcher.Invoke(() =>
{
logEntries.Add(logEntry);
// Update the ListBox with log entries
lstLog.ItemsSource = logEntries;
lstLog.Items.Refresh();
lstLog.ScrollIntoView(logEntry);
});
}
finally
{
// Quit Word and release resources
wordApp.Quit();
Marshal.ReleaseComObject(wordApp);
// Ensure Word processes are terminated
KillProcess("WINWORD");
}
}
private void KillProcess(string processName)
{
try
@ -466,10 +735,10 @@ namespace OfficeConverter
string sourceFolderName = Path.GetFileName(originalFolderPath);
// Remove the source folder name from the target path
targetFolder = targetFolder.Replace(sourceFolderName, "").TrimEnd('\\');
targetFolder = targetFolder.TrimEnd('\\');
// Replace the original folder path with the destination folder path
targetFolder = targetFolder.Replace(originalFolderPath, txtDestFolder.Text.TrimEnd('\\'));
//targetFolder = targetFolder.Replace(originalFolderPath, txtDestFolder.Text.TrimEnd('\\'));
}
}
@ -508,7 +777,10 @@ namespace OfficeConverter
btnConvert.Content = "Convert";
btnDelete.Content = "Delete Files";
btnExport.Content = "Export list";
errorFolderEmpty = "Destination folder is required when 'Replace files' is not selected.";
errorFolderEmpty = "Destination folder is required when 'Replace files' is not selected.";
btnExportLog.Content = "Save Log";
msgConversionInProgress = "Conversion in progress";
msgConversionComplete = "Conversion complete";
}
private void setLangDE()
{
@ -526,7 +798,99 @@ namespace OfficeConverter
btnDelete.Content = "Dateien löschen";
btnExport.Content = "Liste exportieren";
errorFolderEmpty = "Zielordner darf nicht leer sein, wenn 'Ersetze Dateien' nicht gewählt wurde.";
btnExportLog.Content = "Log sichern";
msgConversionInProgress = "Konvertierung läuft";
msgConversionComplete = "Konvertierung abgeschlossen";
}
private void setLangFR()
{
// Update labels, buttons, and headers in the "Folders" section
grpFolders.Header = "Dossiers";
lblSouceFolder.Content = "Dossier source";
lblDestFolder.Content = "Dossier de destination";
btnDestFolder.Content = "Parcourir";
btnSourceFolder.Content = "Parcourir";
chkReplace.Content = "Remplacer les fichiers (Préserver la structure des sous-dossiers)";
chkSubfolders.Content = "Inclure les sous-dossiers";
// Update labels and headers in the "Files" section
grpFiles.Header = "Fichiers";
grpSourceFiles.Header = "File d'attente";
grpDestFiles.Header = "Terminé";
// Update button labels in various sections
btnConvert.Content = "Convertir";
btnDelete.Content = "Supprimer les fichiers";
btnExport.Content = "Exporter la liste";
btnExportLog.Content = "Enregistrer le journal";
// Set error message for an empty destination folder
errorFolderEmpty = "Le dossier de destination est requis lorsque 'Remplacer les fichiers' n'est pas sélectionné.";
// Set messages for conversion progress and completion
msgConversionInProgress = "Conversion en cours";
msgConversionComplete = "Conversion terminée";
}
private void setLangIT()
{
// Update labels, buttons, and headers in the "Folders" section
grpFolders.Header = "Cartelle";
lblSouceFolder.Content = "Cartella di origine";
lblDestFolder.Content = "Cartella di destinazione";
btnDestFolder.Content = "Sfoglia";
btnSourceFolder.Content = "Sfoglia";
chkReplace.Content = "Sostituisci i file (Preserva la struttura delle sottocartelle)";
chkSubfolders.Content = "Includi sottocartelle";
// Update labels and headers in the "Files" section
grpFiles.Header = "File";
grpSourceFiles.Header = "Coda";
grpDestFiles.Header = "Completato";
// Update button labels in various sections
btnConvert.Content = "Converti";
btnDelete.Content = "Elimina i file";
btnExport.Content = "Esporta lista";
btnExportLog.Content = "Salva il registro";
// Set error message for an empty destination folder
errorFolderEmpty = "La cartella di destinazione è richiesta quando 'Sostituisci i file' non è selezionato.";
// Set messages for conversion progress and completion
msgConversionInProgress = "Conversione in corso";
msgConversionComplete = "Conversione completata";
}
private void setLangBN()
{
// Update labels, buttons, and headers in the "Folders" section
grpFolders.Header = "ফোল্ডার";
lblSouceFolder.Content = "উৎস ফোল্ডার";
lblDestFolder.Content = "গন্তব্য ফোল্ডার";
btnDestFolder.Content = "ব্রাউজ";
btnSourceFolder.Content = "ব্রাউজ";
chkReplace.Content = "ফাইল প্রতিস্থাপন (সাবফোল্ডারে ফোল্ডার কাঠামো সংরক্ষণ করুন)";
chkSubfolders.Content = "সাবফোল্ডারগুলি অন্তর্ভুক্ত করুন";
// Update labels and headers in the "Files" section
grpFiles.Header = "ফাইলগুলি";
grpSourceFiles.Header = "কিউ";
grpDestFiles.Header = "সম্পূর্ণ";
// Update button labels in various sections
btnConvert.Content = "কনভার্ট";
btnDelete.Content = "ফাইলগুলি মুছুন";
btnExport.Content = "তালিকা রপ্তানি করুন";
btnExportLog.Content = "লগ সংরক্ষণ করুন";
// Set error message for an empty destination folder
errorFolderEmpty = "ফাইলগুলি নির্বাচন করার সময় গন্তব্য ফোল্ডার প্রয়োজন।";
// Set messages for conversion progress and completion
msgConversionInProgress = "কনভার্ট চলছে";
msgConversionComplete = "কনভার্ট সম্পূর্ণ";
}
private void btnDestFolder_Click(object sender, RoutedEventArgs e)
{
using (var folderBrowserDialog = new Forms.FolderBrowserDialog())
@ -580,6 +944,17 @@ namespace OfficeConverter
case 1:
setLangDE();
break;
case 2:
setLangFR();
break;
case 3:
setLangIT();
break;
case 4:
setLangBN();
break;
}
}
private void chkReplace_Clicked(object sender, RoutedEventArgs e)
@ -623,6 +998,20 @@ namespace OfficeConverter
System.Windows.MessageBox.Show($"Error exporting converted files: {ex.Message}");
}
}
private void ExportConvertedLogFilesToFile(string filePath)
{
try
{
// Write the contents of the convertedFiles list to a text file
File.WriteAllLines(filePath, logEntries);
System.Windows.MessageBox.Show($"Export successful. File saved at: {filePath}");
}
catch (Exception ex)
{
System.Windows.MessageBox.Show($"Error exporting converted files: {ex.Message}");
}
}
private void btnExport_Click(object sender, RoutedEventArgs e)
{
@ -639,7 +1028,21 @@ namespace OfficeConverter
ExportConvertedFilesToFile(saveFileDialog.FileName);
}
}
private void btnExportLog_Click(object sender, RoutedEventArgs e)
{
// Use a SaveFileDialog to let the user choose the export file location
var saveFileDialog = new Microsoft.Win32.SaveFileDialog
{
Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*",
DefaultExt = "txt"
};
if (saveFileDialog.ShowDialog() == true)
{
// Call the ExportConvertedFilesToFile method with the selected file path
ExportConvertedLogFilesToFile(saveFileDialog.FileName);
}
}
private async void DeleteConvertedFilesAsync()
{
// Show a confirmation dialog

View File

@ -0,0 +1,156 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0-windows</TargetFramework>
<OutputType>WinExe</OutputType>
<IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>D:\OneDrive - wyniger\Design &amp; Development\Code\Publish\DocConvert\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>5</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>true</BootstrapperEnabled>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<UseWindowsForms>true</UseWindowsForms>
<UseWPF>true</UseWPF>
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
</PropertyGroup>
<PropertyGroup>
<ManifestCertificateThumbprint>43955F90264C43EAA4330714374C483BFDF3B6C5</ManifestCertificateThumbprint>
</PropertyGroup>
<PropertyGroup>
<ManifestKeyFile>OfficeConverter_TemporaryKey.pfx</ManifestKeyFile>
</PropertyGroup>
<PropertyGroup>
<GenerateManifests>true</GenerateManifests>
</PropertyGroup>
<PropertyGroup>
<SignManifests>true</SignManifests>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<OutputPath>bin\x64\Debug\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>icons8-microsoft-office-480.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Test|AnyCPU'">
<OutputPath>bin\Test\</OutputPath>
<Optimize>true</Optimize>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Test|x64'">
<OutputPath>bin\x64\Test\</OutputPath>
<Optimize>true</Optimize>
</PropertyGroup>
<ItemGroup>
<Reference Update="System">
<Private>True</Private>
</Reference>
<Reference Update="System.Data">
<Private>True</Private>
</Reference>
<Reference Update="System.IO.Compression.FileSystem">
<Private>True</Private>
</Reference>
<Reference Update="System.Numerics">
<Private>True</Private>
</Reference>
<Reference Update="System.Xml">
<Private>True</Private>
</Reference>
<Reference Update="System.Core">
<Private>True</Private>
</Reference>
<Reference Update="System.Xml.Linq">
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Resource Include="Themes\MetroDark\HowToApplyTheme.txt" />
</ItemGroup>
<ItemGroup>
<COMReference Include="Microsoft.Office.Core">
<Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid>
<VersionMajor>2</VersionMajor>
<VersionMinor>8</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
<COMReference Include="Microsoft.Office.Interop.Excel">
<Guid>{00020813-0000-0000-C000-000000000046}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>9</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
<COMReference Include="Microsoft.Office.Interop.PowerPoint">
<Guid>{91493440-5A91-11CF-8700-00AA0060263B}</Guid>
<VersionMajor>2</VersionMajor>
<VersionMinor>12</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
<COMReference Include="Microsoft.Office.Interop.Word">
<Guid>{00020905-0000-0000-C000-000000000046}</Guid>
<VersionMajor>8</VersionMajor>
<VersionMinor>7</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
<COMReference Include="VBIDE">
<Guid>{0002E157-0000-0000-C000-000000000046}</Guid>
<VersionMajor>5</VersionMajor>
<VersionMinor>3</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.8.1">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4.8.1 %28x86 und x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<Resource Include="icons8-microsoft-office-480.ico" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Infragistics.Themes.MetroDark.Wpf" Version="1.0.0" />
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="System.ComponentModel.Composition" Version="8.0.0" />
<PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />
<PackageReference Include="System.Runtime.Handles" Version="4.3.0" />
<PackageReference Include="Microsoft.NETCore.Platforms" Version="6.0.11" />
<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="6.0.1" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.0.0" />
</ItemGroup>
</Project>

View File

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -1,3 +1,15 @@
Converts Office Documents in '97-2003 Format (.doc, .xls, .ppt) to new Format (.docx, .xlsx, .pptx) using Microsoft interop libraries.
OfficeConverter
Converts Office Documents in '97-2003 Format (.doc, .xls, .ppt, .dot, .xlt) to new Format (.docx, .xlsx, .pptx, .dotx, .xltx) using Microsoft interop libraries.
Latest Relase: https://github.com/netquick/OfficeConverter/blob/master/OfficeConverter/OfficeConverter.exe
Developed in Visual Studio Community Edition 2022 with .NET 6
![image](https://github.com/netquick/OfficeConverter/assets/13473003/800da19f-c7e4-4ada-b074-9dc7396deaa3)
Latest Relase: https://github.com/netquick/OfficeConverter/releases/download/office/OfficeConverterCore.exe
Version Log: v1.01:
Added logic to convert templates from Word (.dot to .dotx) and Excel (.xlt to xltx)
Added log window with export function
Fixed bugs crashing on corrupted files