/// <summary> /// Override for Make File Substitutions /// For CEF we set Background to Transparent /// </summary> /// <param name="cachedFile"></param> /// <returns></returns> protected override string MakeHtmlSubstitutions(string cachedFile) { // Check to see if the document already has a background-color, and if it does, leave it alone. string html = cachedFile; if (!this.hasBackgroundColor) { html = cachedFile.Replace("</head>", "<!--START_STYLE_ADJUST--><style type='text/css'>body { background: transparent; }</style><!--END_STYLE_ADJUST--></head>"); } html = html.Replace("[[ViewPortWidth]]", WidthIntended.ToString()); html += "<!--VIEWPORT=" + WidthIntended.ToString() + "x" + HeightIntended.ToString() + "-->"; html += "<!--CACHEDATE=" + DateTime.Now.ToString() + "-->"; return(html); }
/// <summary> /// Override for Make File Substitutions /// For CEF we set Background to Transparent /// </summary> /// <param name="cachedFile"></param> /// <returns></returns> protected override string MakeHtmlSubstitutions(string cachedFile) { // Handle the background String bodyStyle; if (this.backgroundImage == null || this.backgroundImage == "") { bodyStyle = "background-color:" + backgroundColor + " ;"; } else { bodyStyle = "background-image: url('" + this.backgroundImage + "'); background-attachment:fixed; background-color:" + this.backgroundColor + "; background-repeat: no-repeat; background-position: " + this.backgroundLeft + "px " + this.backgroundTop + "px;"; } string html = cachedFile.Replace("</head>", "<!--START_STYLE_ADJUST--><style type='text/css'>body {" + bodyStyle + " }</style><!--END_STYLE_ADJUST--></head>"); html = html.Replace("[[ViewPortWidth]]", WidthIntended.ToString()); html += "<!--VIEWPORT=" + WidthIntended.ToString() + "x" + HeightIntended.ToString() + "-->"; html += "<!--CACHEDATE=" + DateTime.Now.ToString() + "-->"; return(html); }
/// <summary> /// Updates the Cache File with the necessary client side injected items /// </summary> private void UpdateCacheIfNecessary() { // Ammend the resource file so that we can open it directly from the library (this is better than using a tempoary file) string cachedFile = ""; using (FileStream fileStream = File.Open(_filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { using (StreamReader reader = new StreamReader(fileStream)) { cachedFile = reader.ReadToEnd(); } } // Compare the cached dimensions in the file with the dimensions now, and // regenerate if they are different. if (cachedFile.Contains("[[ViewPortWidth]]") || !ReadCachedViewPort(cachedFile).Equals(WidthIntended.ToString() + "x" + HeightIntended.ToString())) { // Regex out the existing replacement if present cachedFile = Regex.Replace(cachedFile, "<!--START_STYLE_ADJUST-->(.*)<!--END_STYLE_ADJUST-->", ""); cachedFile = Regex.Replace(cachedFile, "<meta name=\"viewport\" content=\"width=(.*)\" />", "<meta name=\"viewport\" content=\"width=[[ViewPortWidth]]\" />"); cachedFile = Regex.Replace(cachedFile, "<!--VIEWPORT=(.*)-->", ""); cachedFile = Regex.Replace(cachedFile, "<!--CACHEDATE=(.*)-->", ""); /// File should be back to its original form, ready to run through the subs again string html = MakeHtmlSubstitutions(cachedFile); // Write to the library using (FileStream fileStream = File.Open(_filePath, FileMode.Create, FileAccess.Write, FileShare.Read)) { using (StreamWriter sw = new StreamWriter(fileStream)) { sw.Write(html); sw.Close(); } } } }