Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
43da06fbdf | ||
|
|
4061d94bcd | ||
|
|
07b74ab9be | ||
|
|
05a55da8e3 | ||
|
|
8f6433f16a | ||
|
|
b71af71035 | ||
|
|
d66c521db0 | ||
|
|
55e1b7a73d | ||
|
|
64f033be20 | ||
|
|
fbbe981392 | ||
|
|
d27239c61b | ||
|
|
fe1777ed1e | ||
|
|
9ffbe6dc7d | ||
|
|
8ba225a5bb | ||
|
|
aea2e325f6 | ||
|
|
0a896bc43f | ||
|
|
46384c8469 | ||
|
|
e786cf4867 | ||
|
|
5998eae01a | ||
|
|
362ee135a1 | ||
|
|
7e2410e948 |
115
.github/workflows/dotnet-desktop.yml
vendored
Normal file
115
.github/workflows/dotnet-desktop.yml
vendored
Normal 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
|
||||||
|
|
@ -3,12 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio Version 17
|
# Visual Studio Version 17
|
||||||
VisualStudioVersion = 17.7.34031.279
|
VisualStudioVersion = 17.7.34031.279
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
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}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Projektmappenelemente", "Projektmappenelemente", "{D66D2D0C-17EE-4008-BB58-DDD6EB016AAB}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
EndProject
|
||||||
OfficeConverter\OfficeConverter.exe = OfficeConverter\OfficeConverter.exe
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OfficeConverterCore", "OfficeConverterCore\OfficeConverterCore.csproj", "{B996BAD7-81B4-47F1-84E9-73ABE48859AC}"
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
|
@ -16,16 +13,22 @@ Global
|
||||||
Debug|x64 = Debug|x64
|
Debug|x64 = Debug|x64
|
||||||
Release|Any CPU = Release|Any CPU
|
Release|Any CPU = Release|Any CPU
|
||||||
Release|x64 = Release|x64
|
Release|x64 = Release|x64
|
||||||
|
Test|Any CPU = Test|Any CPU
|
||||||
|
Test|x64 = Test|x64
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{6E77662E-82C3-4913-8964-5A452B229F78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{B996BAD7-81B4-47F1-84E9-73ABE48859AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{6E77662E-82C3-4913-8964-5A452B229F78}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{B996BAD7-81B4-47F1-84E9-73ABE48859AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{6E77662E-82C3-4913-8964-5A452B229F78}.Debug|x64.ActiveCfg = Debug|x64
|
{B996BAD7-81B4-47F1-84E9-73ABE48859AC}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{6E77662E-82C3-4913-8964-5A452B229F78}.Debug|x64.Build.0 = Debug|x64
|
{B996BAD7-81B4-47F1-84E9-73ABE48859AC}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
{6E77662E-82C3-4913-8964-5A452B229F78}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{B996BAD7-81B4-47F1-84E9-73ABE48859AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{6E77662E-82C3-4913-8964-5A452B229F78}.Release|Any CPU.Build.0 = Release|Any CPU
|
{B996BAD7-81B4-47F1-84E9-73ABE48859AC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{6E77662E-82C3-4913-8964-5A452B229F78}.Release|x64.ActiveCfg = Release|x64
|
{B996BAD7-81B4-47F1-84E9-73ABE48859AC}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
{6E77662E-82C3-4913-8964-5A452B229F78}.Release|x64.Build.0 = Release|x64
|
{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
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
|
||||||
|
|
@ -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>
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
|
|
||||||
<Costura />
|
|
||||||
</Weavers>
|
|
||||||
|
|
@ -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 & 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.
|
|
@ -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")]
|
|
||||||
|
|
@ -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>
|
|
||||||
14
OfficeConverterCore/App.config
Normal file
14
OfficeConverterCore/App.config
Normal 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>
|
||||||
|
|
@ -5,14 +5,9 @@
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:local="clr-namespace:OfficeConverter"
|
xmlns:local="clr-namespace:OfficeConverter"
|
||||||
mc:Ignorable="d"
|
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 Background="#FF424242">
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
|
|
||||||
<ColumnDefinition Width="356*"/>
|
|
||||||
<ColumnDefinition Width="689*"/>
|
|
||||||
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
<Grid Margin="0,70,0,0" Background="#FF1A1A1A" Grid.ColumnSpan="2">
|
<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 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>
|
<GroupBox.RenderTransform>
|
||||||
|
|
@ -34,11 +29,13 @@
|
||||||
<Button x:Name="btnDestFolder" Content="btnDest" Margin="545,171,0,0" VerticalAlignment="Top" Click="btnDestFolder_Click"/>
|
<Button x:Name="btnDestFolder" Content="btnDest" Margin="545,171,0,0" VerticalAlignment="Top" Click="btnDestFolder_Click"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</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>
|
<Grid>
|
||||||
<CheckBox x:Name="chkWord" Content="Word .doc" HorizontalAlignment="Left" Margin="0,10,0,0" VerticalAlignment="Top"/>
|
<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="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="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>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
<GroupBox x:Name="grpSourceFiles" Header="grpSourceFiles" Margin="10,291,0,0" Height="259" VerticalAlignment="Top" HorizontalAlignment="Left" Width="497">
|
<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}" />
|
<ListBox x:Name="lstDestFiles" ItemsSource="{Binding convertedFiles}" />
|
||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
<Button x:Name="btnConvert" Content="Button" HorizontalAlignment="Left" Margin="835,162,0,0" VerticalAlignment="Top" Width="174" Height="66" Click="btnConvert_Click"/>
|
<Button x:Name="btnConvert" Content="Button" HorizontalAlignment="Left" Margin="10,555,0,0" VerticalAlignment="Top" Width="174" Height="42" 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="btnExport" Content="btnExport" HorizontalAlignment="Left" Height="33" Margin="915,555,0,0" VerticalAlignment="Top" Width="94" Click="btnExport_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"/>
|
<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>
|
</Grid>
|
||||||
<Label Content="Office Document Converter" HorizontalAlignment="Left" Margin="10,16,0,0" VerticalAlignment="Top" Width="277" FontSize="20"/>
|
<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>
|
</Grid>
|
||||||
</Window>
|
</Window>
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
using System;
|
using Microsoft.VisualBasic;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
@ -27,24 +29,36 @@ namespace OfficeConverter
|
||||||
//Definiter listen für die Anzeige im GUI
|
//Definiter listen für die Anzeige im GUI
|
||||||
List<string> combinedFiles = new List<string>();
|
List<string> combinedFiles = new List<string>();
|
||||||
List<string> convertedFiles = 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
|
//Globalvariables
|
||||||
bool doSubfolders = false;
|
bool doSubfolders = false;
|
||||||
bool doReplace = false;
|
bool doReplace = false;
|
||||||
bool doWord = false;
|
bool doWord = false;
|
||||||
bool doExcel = false;
|
bool doExcel = false;
|
||||||
bool doPPoint = false;
|
bool doPPoint = false;
|
||||||
|
bool doWordTmpl = false;
|
||||||
|
bool doExcelTmpl = false;
|
||||||
string errorFolderEmpty = "";
|
string errorFolderEmpty = "";
|
||||||
|
|
||||||
public MainWindow()
|
public MainWindow()
|
||||||
{
|
{
|
||||||
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
System.Diagnostics.PresentationTraceSources.SetTraceLevel(lstSourceFiles.ItemContainerGenerator, System.Diagnostics.PresentationTraceLevel.High);
|
||||||
|
|
||||||
setLangEN();
|
setLangEN();
|
||||||
chkWord.IsChecked = true;
|
chkWord.IsChecked = true;
|
||||||
chkExcel.IsChecked = true;
|
chkExcel.IsChecked = true;
|
||||||
chkPowerpoint.IsChecked = true;
|
chkPowerpoint.IsChecked = true;
|
||||||
cmbLang.Items.Add("EN");
|
cmbLang.Items.Add("EN");
|
||||||
cmbLang.Items.Add("DE");
|
cmbLang.Items.Add("DE");
|
||||||
|
cmbLang.Items.Add("FR");
|
||||||
|
cmbLang.Items.Add("IT");
|
||||||
|
cmbLang.Items.Add("BN");
|
||||||
cmbLang.SelectedIndex = 0;
|
cmbLang.SelectedIndex = 0;
|
||||||
lstDestFiles.ItemsSource = convertedFiles;
|
lstDestFiles.ItemsSource = convertedFiles;
|
||||||
|
|
||||||
|
|
@ -56,6 +70,22 @@ namespace OfficeConverter
|
||||||
lblState.Content = "Ready";
|
lblState.Content = "Ready";
|
||||||
cancellationTokenSource = new CancellationTokenSource();
|
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
|
//Konvertier-Button
|
||||||
|
|
@ -70,13 +100,17 @@ namespace OfficeConverter
|
||||||
{
|
{
|
||||||
lblState.Content = "Konvertierung läuft";
|
lblState.Content = "Konvertierung läuft";
|
||||||
}
|
}
|
||||||
|
|
||||||
doSubfolders = (bool)chkSubfolders.IsChecked;
|
doSubfolders = (bool)chkSubfolders.IsChecked;
|
||||||
doReplace = (bool)chkReplace.IsChecked;
|
doReplace = (bool)chkReplace.IsChecked;
|
||||||
doWord = (bool)chkWord.IsChecked;
|
doWord = (bool)chkWord.IsChecked;
|
||||||
doExcel = (bool)chkExcel.IsChecked;
|
doExcel = (bool)chkExcel.IsChecked;
|
||||||
doPPoint = (bool)chkPowerpoint.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
|
// Check if the background worker is not already running
|
||||||
if (!backgroundWorker.IsBusy)
|
if (!backgroundWorker.IsBusy)
|
||||||
{
|
{
|
||||||
|
|
@ -140,6 +174,8 @@ namespace OfficeConverter
|
||||||
combinedFiles.ForEach(file => lstSourceFiles.Items.Add(file));
|
combinedFiles.ForEach(file => lstSourceFiles.Items.Add(file));
|
||||||
// Enable buttons after conversion completion
|
// Enable buttons after conversion completion
|
||||||
UpdateButtonStates(true);
|
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)
|
private async Task SearchAndConvertDocs(string folderPath, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
string[] docFiles = null;
|
string[] docFiles = null;
|
||||||
string[] xlsFiles = null;
|
string[] xlsFiles = null;
|
||||||
string[] pptFiles = 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)
|
if (doWord)
|
||||||
{
|
{
|
||||||
docFiles = Directory.GetFiles(folderPath, "*.doc");
|
docFiles = Directory.GetFiles(folderPath, "*.doc");
|
||||||
|
wordFilesCount = docFiles.Length;
|
||||||
|
UpdateLog($"Found {wordFilesCount} Word files (*.doc) in folder {folderPath}");
|
||||||
}
|
}
|
||||||
if (doExcel)
|
if (doExcel)
|
||||||
{
|
{
|
||||||
xlsFiles = Directory.GetFiles(folderPath, "*.xls");
|
xlsFiles = Directory.GetFiles(folderPath, "*.xls");
|
||||||
|
excelFilesCount = xlsFiles.Length;
|
||||||
|
UpdateLog($"Found {excelFilesCount} Excel files (*.xls) in folder {folderPath}");
|
||||||
}
|
}
|
||||||
if (doPPoint)
|
if (doPPoint)
|
||||||
{
|
{
|
||||||
pptFiles = Directory.GetFiles(folderPath, "*.ppt");
|
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
|
// Check for null before adding to combinedFiles
|
||||||
if (docFiles != null)
|
if (docFiles != null)
|
||||||
{
|
{
|
||||||
combinedFiles.AddRange(docFiles);
|
combinedFiles.AddRange(docFiles);
|
||||||
|
|
||||||
}
|
}
|
||||||
if (xlsFiles != null)
|
if (xlsFiles != null)
|
||||||
{
|
{
|
||||||
|
|
@ -187,8 +252,17 @@ namespace OfficeConverter
|
||||||
{
|
{
|
||||||
combinedFiles.AddRange(pptFiles);
|
combinedFiles.AddRange(pptFiles);
|
||||||
}
|
}
|
||||||
|
if (dotFiles != null)
|
||||||
|
{
|
||||||
|
combinedFiles.AddRange(dotFiles);
|
||||||
|
}
|
||||||
|
if (xltFiles != null)
|
||||||
|
{
|
||||||
|
combinedFiles.AddRange(xltFiles);
|
||||||
|
}
|
||||||
|
|
||||||
Console.WriteLine($"Processing files in folder: {folderPath}");
|
Console.WriteLine($"Processing files in folder: {folderPath}");
|
||||||
|
UpdateLog($"Processing files in folder: {folderPath}");
|
||||||
|
|
||||||
/// Create a copy of the collection to avoid modification during iteration
|
/// Create a copy of the collection to avoid modification during iteration
|
||||||
List<string> snapshot = new List<string>(combinedFiles);
|
List<string> snapshot = new List<string>(combinedFiles);
|
||||||
|
|
@ -231,6 +305,7 @@ namespace OfficeConverter
|
||||||
{
|
{
|
||||||
combinedFiles.Clear();
|
combinedFiles.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (OperationCanceledException)
|
catch (OperationCanceledException)
|
||||||
{
|
{
|
||||||
|
|
@ -244,6 +319,12 @@ namespace OfficeConverter
|
||||||
foreach (var subfolder in subfolders)
|
foreach (var subfolder in subfolders)
|
||||||
{
|
{
|
||||||
// Pass the cancellation token to the recursive call
|
// 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);
|
await SearchAndConvertDocs(subfolder, cancellationToken);
|
||||||
|
|
||||||
// Check for cancellation after processing each subfolder
|
// 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();
|
DisplayCombinedFiles();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task ConvertFileToNewFormatAsync(string filePath)
|
private async Task ConvertFileToNewFormatAsync(string filePath)
|
||||||
{
|
{
|
||||||
await Task.Run(() =>
|
await Task.Run(() =>
|
||||||
|
|
@ -284,28 +367,48 @@ namespace OfficeConverter
|
||||||
case ".ppt":
|
case ".ppt":
|
||||||
ConvertPptToPptx(filePath, doSubfolders, doReplace);
|
ConvertPptToPptx(filePath, doSubfolders, doReplace);
|
||||||
break;
|
break;
|
||||||
|
case ".dot":
|
||||||
|
ConvertDocToDotx(filePath, doSubfolders, doReplace);
|
||||||
|
break;
|
||||||
|
case ".xlt":
|
||||||
|
ConvertXltToXltx(filePath, doSubfolders, doReplace);
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// Handle other file types or show an error message
|
// Handle other file types or show an error message
|
||||||
Console.WriteLine($"Unsupported file type: {filePath}");
|
Console.WriteLine($"Unsupported file type: {filePath}");
|
||||||
break;
|
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)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
// Handle exceptions during conversion
|
// 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
|
// 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)
|
private void ConvertXlsToXlsx(string xlsFile, bool doSubfolders, bool doReplace)
|
||||||
{
|
{
|
||||||
|
|
@ -335,6 +438,20 @@ namespace OfficeConverter
|
||||||
workbook.SaveAs(newXlsxPath, Excel.XlFileFormat.xlOpenXMLWorkbook);
|
workbook.SaveAs(newXlsxPath, Excel.XlFileFormat.xlOpenXMLWorkbook);
|
||||||
workbook.Close();
|
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
|
finally
|
||||||
{
|
{
|
||||||
// Quit Excel and release resources
|
// Quit Excel and release resources
|
||||||
|
|
@ -345,6 +462,77 @@ namespace OfficeConverter
|
||||||
KillProcess("EXCEL");
|
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)
|
private void ConvertPptToPptx(string pptFile, bool doSubfolders, bool doReplace)
|
||||||
{
|
{
|
||||||
PowerPoint.Application pptApp = new PowerPoint.Application();
|
PowerPoint.Application pptApp = new PowerPoint.Application();
|
||||||
|
|
@ -376,6 +564,20 @@ namespace OfficeConverter
|
||||||
presentation.SaveAs(newPptxPath, PowerPoint.PpSaveAsFileType.ppSaveAsOpenXMLPresentation);
|
presentation.SaveAs(newPptxPath, PowerPoint.PpSaveAsFileType.ppSaveAsOpenXMLPresentation);
|
||||||
presentation.Close();
|
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
|
finally
|
||||||
{
|
{
|
||||||
// Set PowerPoint application visibility back to true before quitting
|
// Set PowerPoint application visibility back to true before quitting
|
||||||
|
|
@ -413,6 +615,20 @@ namespace OfficeConverter
|
||||||
doc.SaveAs2(newDocxPath, Word.WdSaveFormat.wdFormatXMLDocument);
|
doc.SaveAs2(newDocxPath, Word.WdSaveFormat.wdFormatXMLDocument);
|
||||||
doc.Close();
|
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
|
finally
|
||||||
{
|
{
|
||||||
// Quit Word and release resources
|
// Quit Word and release resources
|
||||||
|
|
@ -423,6 +639,59 @@ namespace OfficeConverter
|
||||||
KillProcess("WINWORD");
|
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)
|
private void KillProcess(string processName)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|
@ -466,10 +735,10 @@ namespace OfficeConverter
|
||||||
string sourceFolderName = Path.GetFileName(originalFolderPath);
|
string sourceFolderName = Path.GetFileName(originalFolderPath);
|
||||||
|
|
||||||
// Remove the source folder name from the target path
|
// 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
|
// 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";
|
btnConvert.Content = "Convert";
|
||||||
btnDelete.Content = "Delete Files";
|
btnDelete.Content = "Delete Files";
|
||||||
btnExport.Content = "Export list";
|
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()
|
private void setLangDE()
|
||||||
{
|
{
|
||||||
|
|
@ -526,7 +798,99 @@ namespace OfficeConverter
|
||||||
btnDelete.Content = "Dateien löschen";
|
btnDelete.Content = "Dateien löschen";
|
||||||
btnExport.Content = "Liste exportieren";
|
btnExport.Content = "Liste exportieren";
|
||||||
errorFolderEmpty = "Zielordner darf nicht leer sein, wenn 'Ersetze Dateien' nicht gewählt wurde.";
|
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)
|
private void btnDestFolder_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
using (var folderBrowserDialog = new Forms.FolderBrowserDialog())
|
using (var folderBrowserDialog = new Forms.FolderBrowserDialog())
|
||||||
|
|
@ -580,6 +944,17 @@ namespace OfficeConverter
|
||||||
case 1:
|
case 1:
|
||||||
setLangDE();
|
setLangDE();
|
||||||
break;
|
break;
|
||||||
|
case 2:
|
||||||
|
setLangFR();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
setLangIT();
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
setLangBN();
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void chkReplace_Clicked(object sender, RoutedEventArgs e)
|
private void chkReplace_Clicked(object sender, RoutedEventArgs e)
|
||||||
|
|
@ -623,6 +998,20 @@ namespace OfficeConverter
|
||||||
System.Windows.MessageBox.Show($"Error exporting converted files: {ex.Message}");
|
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)
|
private void btnExport_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
|
@ -639,7 +1028,21 @@ namespace OfficeConverter
|
||||||
ExportConvertedFilesToFile(saveFileDialog.FileName);
|
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()
|
private async void DeleteConvertedFilesAsync()
|
||||||
{
|
{
|
||||||
// Show a confirmation dialog
|
// Show a confirmation dialog
|
||||||
156
OfficeConverterCore/OfficeConverterCore.csproj
Normal file
156
OfficeConverterCore/OfficeConverterCore.csproj
Normal 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 & 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>
|
||||||
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
16
README.md
16
README.md
|
|
@ -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
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user