Я использую библиотеку OpenXML, чтобы получить HTML -содержание страницы и преобразовать ее в Word. Этот контент соответствует документу и его индексу с гиперссылками. Указывая на место в текущем документе. Это метод: < /p>
[Function("Word")]
public HttpResponseData RunWord([HttpTrigger(AuthorizationLevel.Admin, "get", "post")] HttpRequestData req)
{
ReadHeaders(req);
try
{
telemetryClient.TrackTrace("RunWord Entry");
string body = new StreamReader(req.Body).ReadToEnd();
var deserializedData = JsonConvert.DeserializeObject(body);
var type = deserializedData["Content"].GetType();
var bodyLength = body.Length;
Content contentObject = JsonConvert.DeserializeObject(deserializedData["Content"].ToString());
var contentObjectBodyLength = contentObject.Body.Length;
WordSettings wordSettingObject = JsonConvert.DeserializeObject(deserializedData["WordSettings"].ToString());
wordSettingObject = wordSettingObject ?? new WordSettings();
var htmlPage = new HtmlPage(contentObject, wordSettingObject);
var word = new Word(htmlPage);
telemetryClient.TrackTrace("Parameters initialized. Call to Converter for Word");
byte[] data = CallConverter(word);
var response = GetResponse(data, req);
response.Headers.Add("Content-Type", "application/octet-stream");
return response;
}
catch (Exception ex)
{
var response = req.CreateResponse();
response.StatusCode = HttpStatusCode.InternalServerError;
response.WriteString(ex.Message);
response.WriteString(ex.StackTrace);
telemetryClient.TrackException(ex);
return response;
}
}
< /code>
Значение тела заключается в следующем (пожалуйста, не возражайте против языка, это не имеет значения): < /p>
Значение« тела »внутри переменной ContentObject:
Как видно, сравнивая оба Изображения, контент отличается. Однако, если я скопирую контент из ContentObject и вставляю его где угодно, я вижу, что он правильно встает, соответствующая содержанию тела (я вставил его в документ Word, чтобы показать его). < /P>
Кажется, что содержание перекрывается
Однако, если я закончу процесс преобразования HTML в Word, я вижу, что мой документ Word начинается так: < /p>
Когда это должно выглядеть так:
Поэтому я подозреваю, что что -то происходит в Процесс десериализации тела, но я не до конца понимаю, что может быть. P> Я что -то упускаю? Есть ли какое -то поведение jsonconvert.deserializeObject , которое я упускаю?
Подробнее здесь: https://stackoverflow.com/questions/794 ... ng-openxml
Проблема с гиперссылками в индексе при преобразовании HTML в Word с использованием openxml ⇐ Html
Программисты Html
1738912031
Anonymous
Я использую библиотеку OpenXML, чтобы получить HTML -содержание страницы и преобразовать ее в Word. Этот контент соответствует документу и его индексу с гиперссылками. Указывая на место в текущем документе. Это метод: < /p>
[Function("Word")]
public HttpResponseData RunWord([HttpTrigger(AuthorizationLevel.Admin, "get", "post")] HttpRequestData req)
{
ReadHeaders(req);
try
{
telemetryClient.TrackTrace("RunWord Entry");
string body = new StreamReader(req.Body).ReadToEnd();
var deserializedData = JsonConvert.DeserializeObject(body);
var type = deserializedData["Content"].GetType();
var bodyLength = body.Length;
Content contentObject = JsonConvert.DeserializeObject(deserializedData["Content"].ToString());
var contentObjectBodyLength = contentObject.Body.Length;
WordSettings wordSettingObject = JsonConvert.DeserializeObject(deserializedData["WordSettings"].ToString());
wordSettingObject = wordSettingObject ?? new WordSettings();
var htmlPage = new HtmlPage(contentObject, wordSettingObject);
var word = new Word(htmlPage);
telemetryClient.TrackTrace("Parameters initialized. Call to Converter for Word");
byte[] data = CallConverter(word);
var response = GetResponse(data, req);
response.Headers.Add("Content-Type", "application/octet-stream");
return response;
}
catch (Exception ex)
{
var response = req.CreateResponse();
response.StatusCode = HttpStatusCode.InternalServerError;
response.WriteString(ex.Message);
response.WriteString(ex.StackTrace);
telemetryClient.TrackException(ex);
return response;
}
}
< /code>
Значение тела заключается в следующем (пожалуйста, не возражайте против языка, это не имеет значения): < /p>
Значение« тела »внутри переменной ContentObject:
Как видно, сравнивая оба Изображения, контент отличается. Однако, если я скопирую контент из ContentObject и вставляю его где угодно, я вижу, что он правильно встает, соответствующая содержанию тела (я вставил его в документ Word, чтобы показать его). < /P>
Кажется, что содержание перекрывается
Однако, если я закончу процесс преобразования HTML в Word, я вижу, что мой документ Word начинается так: < /p>
Когда это должно выглядеть так:
Поэтому я подозреваю, что что -то происходит в Процесс десериализации тела, но я не до конца понимаю, что может быть. P> Я что -то упускаю? Есть ли какое -то поведение jsonconvert.deserializeObject , которое я упускаю?
Подробнее здесь: [url]https://stackoverflow.com/questions/79420008/problem-with-hyperlinks-in-the-index-when-converting-html-to-word-using-openxml[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия