diff --git a/CHANGELOG.md b/CHANGELOG.md
index 87aa6e8b..ded64ef3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,6 @@
# Change Log
+- csharp: handling conversion -9 error
- java-spring: handling conversion -9 error
- java: handling conversion -9 error
- ruby: handling conversion -9 error
diff --git a/web/documentserver-example/csharp/App_Themes/media.css b/web/documentserver-example/csharp/App_Themes/media.css
index 705085cc..d5bde136 100644
--- a/web/documentserver-example/csharp/App_Themes/media.css
+++ b/web/documentserver-example/csharp/App_Themes/media.css
@@ -502,6 +502,17 @@
justify-content: space-between;
align-items: center;
}
+ .buttonsMobile.indent {
+ margin-bottom: 0;
+ flex-wrap: nowrap;
+ }
+ .button.file-type:hover,
+ .button.file-type {
+ height: 28px;
+ width: 100px;
+ margin-bottom: 10px !important;
+ font-size: 9px;
+ }
.button.gray{
margin: 0;
}
diff --git a/web/documentserver-example/csharp/App_Themes/stylesheet.css b/web/documentserver-example/csharp/App_Themes/stylesheet.css
index 69c00e00..f245f2d4 100644
--- a/web/documentserver-example/csharp/App_Themes/stylesheet.css
+++ b/web/documentserver-example/csharp/App_Themes/stylesheet.css
@@ -230,6 +230,33 @@ label .checkbox {
color: #FF6F3D;
}
+.button.file-type {
+ font-size: 11px;
+ color: #FFFFFF;
+ padding: 8px 8px;
+ margin-right: 10px;
+}
+
+.button.file-type.disable {
+ cursor: default;
+}
+
+.button.file-type.pale {
+ opacity: 30%;
+}
+
+.button.file-type.document {
+ background: #446995;
+}
+
+.button.file-type.spreadsheet {
+ background: #40865C;
+}
+
+.button.file-type.presentation {
+ background: #AA5252;
+}
+
.upload-panel {
float: left;
padding: 24px 0;
@@ -745,6 +772,16 @@ html {
margin-left: 25px;
}
+.buttonsMobile.indent{
+ padding-left: 35px;
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+
+.invisible {
+ display: none;
+}
+
.tooltip {
background: #FFFFFF;
border-radius: 5px;
diff --git a/web/documentserver-example/csharp/Default.aspx b/web/documentserver-example/csharp/Default.aspx
index 4bb5b0df..569b77e3 100644
--- a/web/documentserver-example/csharp/Default.aspx
+++ b/web/documentserver-example/csharp/Default.aspx
@@ -297,6 +297,15 @@
After these steps are completed, you can work with your document.
1. Loading the file.
The loading speed depends on file size and additional elements it contains.
+
+
+
Please select the current document type
+
+
2. Conversion.
The file is converted to OOXML so that you can edit it.
diff --git a/web/documentserver-example/csharp/Default.aspx.cs b/web/documentserver-example/csharp/Default.aspx.cs
index da98636f..24324d3b 100644
--- a/web/documentserver-example/csharp/Default.aspx.cs
+++ b/web/documentserver-example/csharp/Default.aspx.cs
@@ -437,7 +437,14 @@ namespace OnlineEditorsExample
var lang = context.Request.Cookies.GetOrDefault("ulang", null);
var extension = (Path.GetExtension(_fileName).ToLower() ?? "").Trim('.');
- var internalExtension = "ooxml";
+ string conversionExtension = "ooxml"; // set the default conversion extension as ooxml
+ object fileExt;
+
+ // change the conversion extension if it was provided in the request body
+ if (body.TryGetValue("fileExt", out fileExt) && !String.IsNullOrEmpty(fileExt.ToString()))
+ {
+ conversionExtension = fileExt.ToString();
+ }
// check if the file with such an extension can be converted
if (ConvertExts.Contains("." + extension))
@@ -454,7 +461,7 @@ namespace OnlineEditorsExample
// get the url and file type of the converted file
Dictionary newFileData;
- var result = ServiceConverter.GetConvertedData(fileUrl.ToString() , extension, internalExtension, key, true, out newFileData, filePass, lang);
+ var result = ServiceConverter.GetConvertedData(fileUrl.ToString() , extension, conversionExtension, key, true, out newFileData, filePass, lang);
if (result != 100)
{
return "{ \"step\" : \"" + result + "\", \"filename\" : \"" + _fileName + "\"}";
diff --git a/web/documentserver-example/csharp/DocumentConverter.cs b/web/documentserver-example/csharp/DocumentConverter.cs
index a59c2495..580f77af 100644
--- a/web/documentserver-example/csharp/DocumentConverter.cs
+++ b/web/documentserver-example/csharp/DocumentConverter.cs
@@ -231,6 +231,10 @@ namespace ASC.Api.DocumentConverter
switch (errorCode)
{
+ case -9:
+ // public const int c_nErrorConversionOutputFormatError = -9;
+ errorMessage = String.Format(errorMessageTemplate, "Error conversion output format");
+ break;
case -8:
// public const int c_nErrorFileVKey = -8;
errorMessage = String.Format(errorMessageTemplate, "Error document VKey");
diff --git a/web/documentserver-example/csharp/script/jscript.js b/web/documentserver-example/csharp/script/jscript.js
index 2491c400..db4f1f1f 100644
--- a/web/documentserver-example/csharp/script/jscript.js
+++ b/web/documentserver-example/csharp/script/jscript.js
@@ -87,7 +87,7 @@ if (typeof jQuery != "undefined") {
});
var timer = null;
- var checkConvert = function (filePass) {
+ var checkConvert = function (filePass, fileType) {
filePass = filePass ? filePass : null;
if (timer != null) {
clearTimeout(timer);
@@ -116,7 +116,7 @@ if (typeof jQuery != "undefined") {
contentType: "text/xml",
type: "post",
dataType: "json",
- data: JSON.stringify({ filename: fileName, filePass: filePass }),
+ data: JSON.stringify({ filename: fileName, filePass: filePass, fileExt: fileType }),
url: requestAddress,
complete: function (data) {
var responseText = data.responseText;
@@ -132,6 +132,12 @@ if (typeof jQuery != "undefined") {
}
return;
} else {
+ if (response.error.includes("Error conversion output format")) {
+ jq("#select-file-type").removeClass("invisible");
+ jq("#step2").removeClass("current");
+ jq("#hiddenFileName").attr("placeholder", filePass);
+ return;
+ }
jq(".current").removeClass("current");
jq(".step:not(.done)").addClass("error");
jq("#mainProgress .error-message").show().find("span").text(response.error);
@@ -143,7 +149,7 @@ if (typeof jQuery != "undefined") {
jq("#hiddenFileName").val(response.filename);
if (response.step && response.step < 100) {
- checkConvert(filePass);
+ checkConvert(filePass, fileType);
} else {
jq("#step2").addClass("done").removeClass("current");
loadScripts();
@@ -213,6 +219,15 @@ if (typeof jQuery != "undefined") {
});
};
+ jq(document).on("click", ".file-type:not(.disable)", function () {
+ const currentElement = jq(this);
+ var fileType = currentElement.attr("data");
+ var filePass = jq("#hiddenFileName").attr("placeholder");
+ jq('.file-type').addClass(["disable", "pale"]);
+ currentElement.removeClass("pale");
+ checkConvert(filePass, fileType);
+ });
+
jq(document).on("click", "#enterPass", function () {
var filePass = jq("#filePass").val();
if (filePass) {