Я использую c # и Google.Apis.Drive.V3 DriveService для создания документа в документах Google из шаблона HTML Razorview.Когда я создаю файл в Google Docs, файл создается успешно, но с определенным неправильным форматом.Я исправил почти все эти ошибки, но есть одна, которая поражает меня.У меня есть таблицы, которые помещаются во весь документ или HTML-страницу, даже если я указал размер этих таблиц в дюймах, сантиметрах или точках, все работает хорошо.при загрузке документа таблицы имеют неправильный размер и не покрывают 100% ширины.На следующем рисунке показано, как создается файл:
Обратите внимание, что даже когда я включаю прозрачный пиксель png в первую строку, таблицаменьше, чем я ожидал.
Это код шаблона, который я использую для этого:
<html>
<head>
<style type="text/css">
@@import url('https://themes.googleusercontent.com/fonts/css?kit=fpjTOVmNbO4Lz34iLyptLSsvxyIpIjyXbTpruCFAaFx6IoWp0s0DOH-yFNIUq8XG');
@@page {
size: 8.5in 11in;
margin: 1.5cm;
}
table, td, tr, th {
border: none;
}
.body-table {
border-spacing: 0;
border-collapse: collapse;
font-family: Lato, sans-serif;
border: none;
table-layout: fixed;
}
.v-align {
vertical-align: middle;
}
.h-center {
text-align: center;
}
.p {
padding-top: 0;
padding-bottom: 0;
line-height: 1.0;
orphans: 2;
widows: 2;
}
.prev-address {
color: #505759;
font-size: 9pt;
text-align: right;
width: 158.4pt;
}
.main-logo {
width: 158.4pt;
}
.prev-title {
font-size: 14pt;
text-align: center;
width: 230.4pt;
}
.width-30 {
width: 30%;
}
</style>
</head>
<body style="min-width: 21.59cm; padding: 1cm 1cm 1cm 1cm">
<table class="body-table" style="min-width: 19cm;">
<tbody>
<tr>
<td colspan="3"><img style="width: 19cm" src="mypixel.png"></td>
</tr>
<tr style="width: 19cm;">
<td class="main-logo width-30 v-align">Content 1</td>
<td class="prev-title width-30 v-align h-center">Content 2</td>
<td class="prev-address width-30">Content 3</td>
</tr>
</tbody>
</table>
</body>
</html>
И вот как я загружаю его с помощью службы Google Drive в C #:
var fileContent = await
_viewRenderService.RenderToStringAsync("Quotes/PreviewTemplate", model);
var request = _driveService.Files.Create(new File
{
CreatedTime = DateTime.UtcNow,
MimeType = "application/vnd.google-apps.document",
Name = $"{fileName}.html"
}, fileContent.ToStream(), "text/html; charset=utf-8");
await request.UploadAsync();
Есть ли что-то, что я делаю неправильно, чтобы получить это странное поведение?
ОБНОВЛЕНИЕ: Я понял, что эта проблема связана с заполнением страницы, обратите внимание, как на изображенииотступы / поля были настроены на 0,5 см.Таким образом, кажется, что Google использует какую-то максимальную ширину для содержимого на этой странице, но влияет только на таблицы или, возможно, устанавливает максимальную ширину для таблиц, загруженных с помощью Drive API, и выравнивает содержимое по левому краю документа.