Skip to content

Commit c052c63

Browse files
committed
Updated sources
1 parent 3d66eca commit c052c63

8 files changed

Lines changed: 85 additions & 79 deletions

File tree

src/GroupDocs.Conversion.Cloud.Sdk.Test/Api/ConvertApiTests.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
// </summary>
2424
// --------------------------------------------------------------------------------------------------------------------
2525

26+
using System.Collections.Generic;
2627
using System.IO;
2728
using GroupDocs.Conversion.Cloud.Sdk.Client;
2829
using GroupDocs.Conversion.Cloud.Sdk.Model;
@@ -132,5 +133,30 @@ public void TestConversionFileNotFound()
132133
});
133134
Assert.True(ex.Message.Contains("The specified key does not exist"));
134135
}
136+
137+
[Test]
138+
public void TestConversionFontSubs()
139+
{
140+
// Prepare convert settings
141+
var loadOptions = new OneLoadOptions
142+
{
143+
FontSubstitutes = new Dictionary<string, string>
144+
{
145+
{"Tahoma", "Arial"}, {"Times New Roman", "Arial"}
146+
}
147+
};
148+
149+
var settings = new ConvertSettings
150+
{
151+
FilePath = TestFiles.OneNote.FullName,
152+
Format = "pdf",
153+
LoadOptions = loadOptions,
154+
OutputPath = "converted"
155+
};
156+
157+
158+
// Convert to specified format
159+
var response = ConvertApi.ConvertDocument(new ConvertDocumentRequest(settings));
160+
}
135161
}
136162
}

src/GroupDocs.Conversion.Cloud.Sdk.Test/Api/Internal/TestFiles.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public static class TestFiles
3636
Password = "password"
3737
};
3838
public static readonly TestFile FourPagesDocx = new TestFile("four-pages.docx", "WordProcessing\\");
39+
public static readonly TestFile OneNote = new TestFile("sample.one", "Note\\");
3940

4041
public static IEnumerable<TestFile> TestFilesList
4142
{
@@ -44,6 +45,7 @@ public static IEnumerable<TestFile> TestFilesList
4445
yield return OnePageDocx;
4546
yield return PasswordProtectedDocx;
4647
yield return FourPagesDocx;
48+
yield return OneNote;
4749
}
4850
}
4951
}

src/GroupDocs.Conversion.Cloud.Sdk.Test/GroupDocs.Conversion.Cloud.Sdk.Test.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
<ProjectReference Include="..\GroupDocs.Conversion.Cloud.Sdk\GroupDocs.Conversion.Cloud.Sdk.csproj" />
1616
</ItemGroup>
1717
<ItemGroup>
18+
<None Update="Resources\TestData\Note\sample.one">
19+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
20+
</None>
1821
<None Update="Resources\TestData\WordProcessing\four-pages.docx">
1922
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
2023
</None>
Binary file not shown.

src/GroupDocs.Conversion.Cloud.Sdk.sln

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio 15
4-
VisualStudioVersion = 15.0.27703.2042
3+
# Visual Studio Version 16
4+
VisualStudioVersion = 16.0.31205.134
55
MinimumVisualStudioVersion = 10.0.40219.1
6-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GroupDocs.Conversion.Cloud.Sdk", "GroupDocs.Conversion.Cloud.Sdk\GroupDocs.Conversion.Cloud.Sdk.csproj", "{13284D1A-8B08-469A-A58B-5C94B92C68E7}"
6+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GroupDocs.Conversion.Cloud.Sdk", "GroupDocs.Conversion.Cloud.Sdk\GroupDocs.Conversion.Cloud.Sdk.csproj", "{13284D1A-8B08-469A-A58B-5C94B92C68E7}"
77
EndProject
8-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GroupDocs.Conversion.Cloud.Sdk.Test", "GroupDocs.Conversion.Cloud.Sdk.Test\GroupDocs.Conversion.Cloud.Sdk.Test.csproj", "{19F1DEBC-DE5E-4517-8062-F000CD499087}"
8+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GroupDocs.Conversion.Cloud.Sdk.Test", "GroupDocs.Conversion.Cloud.Sdk.Test\GroupDocs.Conversion.Cloud.Sdk.Test.csproj", "{19F1DEBC-DE5E-4517-8062-F000CD499087}"
99
EndProject
1010
Global
1111
GlobalSection(SolutionConfigurationPlatforms) = preSolution

src/GroupDocs.Conversion.Cloud.Sdk/Client/ApiInvoker.cs

Lines changed: 37 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -90,83 +90,48 @@ private static byte[] GetMultipartFormData(Dictionary<string, object> postParame
9090
Stream formDataStream = new MemoryStream();
9191
bool needsClrf = false;
9292

93-
if (postParameters.Count > 1)
93+
foreach (var param in postParameters)
9494
{
95-
foreach (var param in postParameters)
95+
// Thanks to feedback from commenters, add a CRLF to allow multiple parameters to be added.
96+
// Skip it on the first parameter, add it to subsequent parameters.
97+
if (needsClrf)
9698
{
97-
// Thanks to feedback from commenters, add a CRLF to allow multiple parameters to be added.
98-
// Skip it on the first parameter, add it to subsequent parameters.
99-
if (needsClrf)
100-
{
101-
formDataStream.Write(Encoding.UTF8.GetBytes("\r\n"), 0, Encoding.UTF8.GetByteCount("\r\n"));
102-
}
99+
formDataStream.Write(Encoding.UTF8.GetBytes("\r\n"), 0, Encoding.UTF8.GetByteCount("\r\n"));
100+
}
103101

104-
needsClrf = true;
102+
needsClrf = true;
105103

106-
if (param.Value is FileInfo)
107-
{
108-
var fileInfo = (FileInfo)param.Value;
109-
string postData =
110-
string.Format(
111-
"--{0}\r\nContent-Disposition: form-data; name=\"{1}\"; filename=\"{1}\"\r\nContent-Type: {2}\r\n\r\n",
112-
boundary,
113-
param.Key,
114-
fileInfo.MimeType);
115-
formDataStream.Write(Encoding.UTF8.GetBytes(postData), 0, Encoding.UTF8.GetByteCount(postData));
116-
117-
// Write the file data directly to the Stream, rather than serializing it to a string.
118-
formDataStream.Write(fileInfo.FileContent, 0, fileInfo.FileContent.Length);
119-
}
120-
else
121-
{
122-
var stringDaa = SerializationHelper.Serialize(param.Value);
123-
string postData =
124-
string.Format(
125-
"--{0}\r\nContent-Disposition: form-data; name=\"{1}\"\r\n\r\n{2}",
126-
boundary,
127-
param.Key,
128-
stringDaa);
129-
formDataStream.Write(Encoding.UTF8.GetBytes(postData), 0, Encoding.UTF8.GetByteCount(postData));
130-
}
104+
if (param.Value is FileInfo)
105+
{
106+
var fileInfo = (FileInfo)param.Value;
107+
string postData =
108+
string.Format(
109+
"--{0}\r\nContent-Disposition: form-data; name=\"{1}\"; filename=\"{1}\"\r\nContent-Type: {2}\r\n\r\n",
110+
boundary,
111+
param.Key,
112+
fileInfo.MimeType);
113+
formDataStream.Write(Encoding.UTF8.GetBytes(postData), 0, Encoding.UTF8.GetByteCount(postData));
114+
115+
// Write the file data directly to the Stream, rather than serializing it to a string.
116+
formDataStream.Write(fileInfo.FileContent, 0, fileInfo.FileContent.Length);
131117
}
132-
133-
// Add the end of the request. Start with a newline
134-
string footer = "\r\n--" + boundary + "--\r\n";
135-
formDataStream.Write(Encoding.UTF8.GetBytes(footer), 0, Encoding.UTF8.GetByteCount(footer));
136-
}
137-
else
138-
{
139-
foreach (var param in postParameters)
118+
else
140119
{
141-
if (param.Value is FileInfo)
142-
{
143-
var fileInfo = (FileInfo)param.Value;
144-
145-
// Write the file data directly to the Stream, rather than serializing it to a string.
146-
formDataStream.Write(fileInfo.FileContent, 0, fileInfo.FileContent.Length);
147-
}
148-
else if (param.Value is byte[])
149-
{
150-
// Write the file data directly to the Stream, rather than serializing it to a string.
151-
formDataStream.Write(param.Value as byte[], 0, (param.Value as byte[]).Length);
152-
}
153-
else
154-
{
155-
string postData;
156-
if (!(param.Value is string))
157-
{
158-
postData = SerializationHelper.Serialize(param.Value);
159-
}
160-
else
161-
{
162-
postData = (string)param.Value;
163-
}
164-
165-
formDataStream.Write(Encoding.UTF8.GetBytes(postData), 0, Encoding.UTF8.GetByteCount(postData));
166-
}
120+
var stringDaa = SerializationHelper.Serialize(param.Value);
121+
string postData =
122+
string.Format(
123+
"--{0}\r\nContent-Disposition: form-data; name=\"{1}\"\r\n\r\n{2}",
124+
boundary,
125+
param.Key,
126+
stringDaa);
127+
formDataStream.Write(Encoding.UTF8.GetBytes(postData), 0, Encoding.UTF8.GetByteCount(postData));
167128
}
168129
}
169130

131+
// Add the end of the request. Start with a newline
132+
string footer = "\r\n--" + boundary + "--\r\n";
133+
formDataStream.Write(Encoding.UTF8.GetBytes(footer), 0, Encoding.UTF8.GetByteCount(footer));
134+
170135
// Dump the Stream into a byte[]
171136
formDataStream.Position = 0;
172137
byte[] formData = new byte[formDataStream.Length];
@@ -227,16 +192,16 @@ private WebRequest PrepareRequest(string path, string method, Dictionary<string,
227192
byte[] formData = null;
228193
if (formParams.Count > 0)
229194
{
195+
string formDataBoundary = "GroupDocsConversionForCloud_NETSDKFormBoundary";
196+
client.ContentType = "multipart/form-data; boundary=" + formDataBoundary;
197+
230198
if (formParams.Count > 1)
231199
{
232-
string formDataBoundary = "GroupDocsConversionForCloud_NETSDKFormBoundary";
233-
client.ContentType = "multipart/form-data; boundary=" + formDataBoundary;
234200
formData = GetMultipartFormData(formParams, formDataBoundary);
235201
}
236202
else
237203
{
238-
client.ContentType = "multipart/form-data";
239-
formData = GetMultipartFormData(formParams, string.Empty);
204+
formData = GetMultipartFormData(formParams, formDataBoundary);
240205
}
241206

242207
client.ContentLength = formData.Length;

src/GroupDocs.Conversion.Cloud.Sdk/GroupDocs.Conversion.Cloud.Sdk.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
<Project Sdk="Microsoft.NET.Sdk">
33
<PropertyGroup>
44
<TargetFrameworks>netstandard2.0;net20</TargetFrameworks>
5-
<AssemblyVersion>21.4.0.0</AssemblyVersion>
6-
<FileVersion>21.4.0.0</FileVersion>
7-
<Version>21.4</Version>
5+
<AssemblyVersion>21.4.1.0</AssemblyVersion>
6+
<FileVersion>21.4.1.0</FileVersion>
7+
<Version>21.4.1</Version>
88
<StyleCopTreatErrorsAsWarnings>false</StyleCopTreatErrorsAsWarnings>
99
<Company>GroupDocs</Company>
1010
<Authors>GroupDocs Product Team</Authors>

src/GroupDocs.Conversion.Cloud.Sdk/GroupDocs.Conversion.Cloud.Sdk.xml

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)