OpenXML: содержимое гиперссылки в Word, обнаруженные как внешние ссылки вместо внутреннихHtml

Программисты Html
Ответить
Anonymous
 OpenXML: содержимое гиперссылки в Word, обнаруженные как внешние ссылки вместо внутренних

Сообщение Anonymous »

Я пытаюсь преобразовать контент HTML в Word с использованием openxml.
Проблема, с которой я сталкиваюсь, заключается в том, что гиперссылки в содержании таблицы обнаруживаются с помощью Word как «существующий файл или веб -страница». /p>
Когда они должны быть ссылками на местоположения в одном и том же документе. Идентификатор для места расположения документа, к которому он должен перейти. Единственная проблема заключается в том, что слово интерпретирует его как внешнюю ссылку, а не внутреннюю. это:

Он напрямую открывает "место В этом документе "раздел и правильно указывает на то, где он должен. />
открывает «Файл или внешний веб -сайт «Раздел, потому что он обнаруживает точки гиперссылки в месте за пределами документа < /p>
Вот как я выполняю конверсию: < /p>
public override System.IO.Stream Convert()
{
var memoryStream = new MemoryStream();
if (!string.IsNullOrEmpty(DocumentContent.Header))
DocumentContent.Header = Section.Remove(Document.Converter.Format.Word, DocumentContent.Header);
if (!string.IsNullOrEmpty(DocumentContent.Footer))
DocumentContent.Footer = Section.Remove(Document.Converter.Format.Word, DocumentContent.Footer);

string html = DocumentContent.Body;
html = FixOptionTagBadFormatter(html);
const string altChunkID = "AltChunkId1";

WordprocessingDocumentType documentType = ((WordSettings)Settings).IsTemplate ? WordprocessingDocumentType.Template : WordprocessingDocumentType.Document;

using (var myDoc = WordprocessingDocument.Create(memoryStream, documentType))
{
MainDocumentPart mainPart = myDoc.MainDocumentPart;

if (mainPart == null)
{
mainPart = myDoc.AddMainDocumentPart();
new DocumentFormat.OpenXml.Wordprocessing.Document(new List { new Body() }).Save(mainPart);
}

AlternativeFormatImportPart chunk = mainPart.AddAlternativeFormatImportPart(AlternativeFormatImportPartType.Xhtml, altChunkID);

System.IO.Stream chunkStream = chunk.GetStream(FileMode.Create, FileAccess.Write);

string encoding = GetEncodingDocument(html);
using (var stringStream = new StreamWriter(chunkStream, Encoding.GetEncoding(encoding)))
{
stringStream.Write(html);
}

var altChunk = new AltChunk { Id = altChunkID };
mainPart.Document.Body.InsertAt(altChunk, 0);

if (DocumentContent.CoverPage != null)
{
AddCoverPage(mainPart, DocumentContent.CoverPage, encoding);
}

SectionProperties sectionProperties = new SectionProperties();
mainPart.Document.Body.Append(sectionProperties);

if (DocumentContent.Footer != null && DocumentContent.Header != null)
{
HeaderReference headerReference = new HeaderReference { Type = HeaderFooterValues.Default, Id = "rId1" };
sectionProperties.Append(headerReference);

// Add an empty footer to each section
FooterReference footerReference = new FooterReference() { Type = HeaderFooterValues.Default, Id = "rId2" };
sectionProperties.Append(footerReference);

// Add empty header and footer
HeaderPart headerPart = mainPart.AddNewPart("rId1");
headerPart.Header = new Header();

FooterPart footerPart = mainPart.AddNewPart("rId2");
footerPart.Footer = new Footer();

string htmlHeader = DocumentContent.Header;
string htmlFooter = DocumentContent.Footer;

ChangeHeaderAndFooter(myDoc, headerReference.Id, footerReference.Id, htmlHeader, htmlFooter);
}

AddPageMargin(mainPart);

mainPart.Document.Save();

return memoryStream;
}
}

private string GetEncodingDocument(string html)
{
string encoding = "utf-8";
string[] texto = html.Split(new string[] { "
Остальная часть кода связана с заголовком и нижним колонтитулом документа, поэтому я не думаю, что это имеет отношение к проблеме. < /p>
Есть Способ установить конверсию так, чтобы гиперссылки в содержимого таблицы распознавались как внутренние ссылки вместо внешних?

Подробнее здесь: https://stackoverflow.com/questions/794 ... ks-instead
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»