使用Google DriveService创建文件时表宽度错误

时间:2019-02-24 19:57:33

标签: c# google-drive-api google-docs-api

我正在使用c#和Google.Apis.Drive.V3 DriveService从HTML Razorview模板在google文档上创建文档。当我创建文件到google docs时,文件创建成功,但是格式错误。我几乎解决了所有这些错误,但是有一个错误让我震惊。我有适合整个文档或HTML页面的表格,即使我以英寸,厘米或磅为单位指定了这些表格的大小,也可以正常工作。上载文件时表格大小错误,无法覆盖100%的宽度。这是文件创建方式的图片:

enter image description here

请注意,即使在第一行包含透明像素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>

这就是我在c#中使用Google Drive服务上传的方式:

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对该页面中的内容使用了某种最大宽度,但仅影响表格,或者可能为通过驱动器API上传的表格设置了最大宽度,并将内容对齐到文档的左侧。

0 个答案:

没有答案